git.s-ol.nu mmm / 6c3836e
fix browser nav issues, fs default sorting s-ol 2 years ago
17 changed file(s) with 91 addition(s) and 66 deletion(s). Raw diff Collapse all Expand all
00 db.sqlite3
11 root/static/style/text$css.css
2 root/static/mmm/application$lua.lua
2 root/static/mmm/text$lua.lua
33 ##### TUP GITIGNORE #####
44 ##### Lines below automatically generated by Tup.
55 ##### Do not edit.
55 : scss/main.scss |> !sassc |> root/static/style/text$css.css
66
77 # bundle for client loading
8 : mmm/.bundle.lua | <modules> |> ^ WRAP %d^ moon &(build)/bundle_module.moon '%o' --wrap %f |> root/static/mmm/application$lua.lua
8 : mmm/.bundle.lua | <modules> |> ^ WRAP %d^ moon &(build)/bundle_module.moon '%o' --wrap %f |> root/static/mmm/text$lua.lua
3333 assert @server\listen!
3434
3535 _, ip, port = @server\localname!
36 print "SV", "running at #{ip}:#{port}"
36 print "[#{@@__name}]", "running at #{ip}:#{port}"
3737 assert @server\loop!
3838
3939 handle: (method, path, facet) =>
6060 root = Fileder @store
6161 BROWSER = Browser root, path, facet.name
6262 render BROWSER\todom!, fileder, noview: true, scripts: "
63 <script type=\"application/lua\">
63 <script type=\"text/lua\">
6464 on_load = on_load or {}
6565 table.insert(on_load, function()
6666 local path = #{string.format '%q', path}
7070 local web = require 'mmm.mmmfs.stores.web'
7171
7272 local store = web.WebStore({ verbose = true })
73 local index = store:get_index(path, -1)
74 local root = fileder.Fileder(store, index)
73 local root = fileder.Fileder(store, store:get_index(nil, -1))
7574
7675 BROWSER = browser.Browser(root, path, facet, true)
7776 end)
1818 }
1919
2020 casts = {
21 code_cast 'javascript',
22 code_cast 'moonscript',
23 code_cast 'lua',
24 code_cast 'markdown',
25 code_cast 'html',
26 {
27 inp: 'text/plain'
28 out: 'mmm/dom'
29 transform: (val) => text val
30 },
21 code_cast 'javascript'
22 code_cast 'moonscript'
23 code_cast 'lua'
24 code_cast 'markdown'
25 code_cast 'html'
26 code_cast 'css'
3127 {
3228 inp: 'URL.*'
3329 out: 'mmm/dom'
3430 transform: (href) => span a (code href), :href
35 },
31 }
3632 }
3733
3834 for convert in *converts
22 import find_fileder, link_to, embed from (require 'mmm.mmmfs.util') require 'mmm.dom'
33 import render from require '.layout'
44 import tohtml from require 'mmm.component'
5 import languages from require 'mmm.highlighting'
6
7 keep = (var) ->
8 last = var\get!
9 var\map (val) ->
10 last = val or last
11 last
512
613 -- fix JS null values
714 js_fix = if MODE == 'CLIENT'
1623 loadwith = (_load) -> (val, fileder, key) =>
1724 func = assert _load val, "#{fileder}##{key}"
1825 func!
26
27 -- highlight code
28 code_hl = (lang) ->
29 {
30 inp: "text/#{lang}",
31 out: 'mmm/dom',
32 transform: (val) => pre languages[lang] val
33 }
1934
2035 -- list of converts
2136 -- converts each have
2742 inp: 'fn -> (.+)',
2843 out: '%1',
2944 transform: (val, fileder) => val fileder
30 },
45 }
3146 {
3247 inp: 'mmm/component',
3348 out: 'mmm/dom',
3449 transform: single tohtml
35 },
50 }
3651 {
3752 inp: 'mmm/dom',
3853 out: 'text/html+frag',
3954 transform: (node) => if MODE == 'SERVER' then node else node.outerHTML
40 },
55 }
4156 {
4257 -- inp: 'text/html%+frag',
4358 -- @TODO: this doesn't feel right... maybe mmm/dom has to go?
4459 inp: 'mmm/dom',
4560 out: 'text/html',
4661 transform: (html, fileder) => render html, fileder
47 },
62 }
4863 {
4964 inp: 'text/html%+frag',
5065 out: 'mmm/dom',
118133
119134 assert 1 == parent.childElementCount, "text/html with more than one child!"
120135 parent.firstElementChild
121 },
136 }
122137 {
123138 inp: 'text/lua -> (.+)',
124139 out: '%1',
125140 transform: loadwith load or loadstring
126 },
141 }
127142 {
128143 inp: 'mmm/tpl -> (.+)',
129144 out: '%1',
133148 assert path, "couldn't match TPL expression '#{expr}'"
134149
135150 (find_fileder path, fileder)\gett facet
136 },
151 }
137152 {
138153 inp: 'time/iso8601-date',
139154 out: 'time/unix',
141156 year, _, month, day = val\match '^%s*(%d%d%d%d)(%-?)([01]%d)%2([0-3]%d)%s*$'
142157 assert year, "failed to parse ISO 8601 date: '#{val}'"
143158 os.time :year, :month, :day
144 },
159 }
145160 {
146161 inp: 'URL -> twitter/tweet',
147162 out: 'mmm/dom',
156171 'data-lang': 'en'
157172 a '(linked tweet)', :href
158173 }
159 },
174 }
160175 {
161176 inp: 'URL -> youtube/video',
162177 out: 'mmm/dom',
176191 frameBorder: 0
177192 src: "//www.youtube.com/embed/#{id}"
178193 }
179 },
194 }
180195 {
181196 inp: 'URL -> image/.+',
182197 out: 'mmm/dom',
183198 transform: (src, fileder) => img :src
184 },
199 }
185200 {
186201 inp: 'URL -> video/.+',
187202 out: 'mmm/dom',
188203 transform: (src) =>
189204 -- @TODO: add parsed MIME type
190205 video (source :src), controls: true, loop: true
191 },
206 }
192207 {
193208 inp: 'text/plain',
194209 out: 'mmm/dom',
195210 transform: (val) => span val
196 },
211 }
197212 {
198213 inp: 'alpha',
199214 out: 'mmm/dom',
200215 transform: single code
201 },
216 }
202217 -- this one needs a higher cost
203218 -- {
204219 -- inp: 'URL -> .+',
205220 -- out: 'mmm/dom',
206221 -- transform: single code
207 -- },
222 -- }
208223 {
209224 inp: '(.+)',
210225 out: 'URL -> %1',
211226 transform: (_, fileder, key) => "#{fileder.path}/#{key.name}:#{@from}"
212 },
227 }
213228 {
214229 inp: 'table',
215 out: 'application/json',
230 out: 'text/json',
216231 transform: do
217232 tojson = (obj) ->
218233 switch type obj
233248 error "unknown type '#{type obj}'"
234249
235250 (val) => tojson val
236 },
251 }
237252 {
238253 inp: 'table',
239254 out: 'mmm/dom',
251266
252267 (tbl) => pre code deep_tostring tbl
253268 }
269 code_hl 'javascript'
270 code_hl 'moonscript'
271 code_hl 'lua'
272 code_hl 'markdown'
273 code_hl 'css'
254274 }
255275
256276 if MODE == 'SERVER'
143143
144144 assert ('string' == type @path), "invalid path: '#{@path}'"
145145
146 -- load fact/children contents
147 -- called automatically by metamethods set up in constructor
148 -- can take an index instance if it is already available,
146149 load: (index) =>
147150 assert not @loaded, "already loaded!"
148151 @loaded = true
142142 #{footer}
143143 "
144144 buf ..= [[
145 <script type="application/javascript" src="/static/highlight-pack/:application/javascript"></script>
146 <script type="application/javascript" src="//cdnjs.cloudflare.com/ajax/libs/marked/0.5.1/marked.min.js"></script>
147 <script type="application/javascript" src="//cdnjs.cloudflare.com/ajax/libs/svg.js/2.6.6/svg.min.js"></script>
148 <script type="application/javascript" src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
149 <script type="application/javascript" src="/static/fengari-web/:application/javascript"></script>
150 <script type="application/lua" src="/static/mmm/:application/lua"></script>
151 <script type="application/lua">require 'mmm'</script>
145 <script type="text/javascript" src="/static/highlight-pack/:text/javascript"></script>
146 <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/marked/0.5.1/marked.min.js"></script>
147 <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/svg.js/2.6.6/svg.min.js"></script>
148 <script type="text/javascript" src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
149 <script type="text/javascript" src="/static/fengari-web/:text/javascript"></script>
150 <script type="text/lua" src="/static/mmm/:text/lua"></script>
151 <script type="text/lua">require 'mmm'</script>
152152 ]]
153153
154154 buf ..= opts.scripts
2121
2222 -- fileders
2323 list_fileders_in: (path='') =>
24 paths = for entry_name in lfs.dir @root .. path
25 continue if '.' == entry_name\sub 1, 1
26 entry_path = @root .. "#{path}/#{entry_name}"
27 if 'directory' ~= lfs.attributes entry_path, 'mode'
28 continue
29
30 "#{path}/#{entry_name}"
31
32 table.sort paths
2433 coroutine.wrap ->
25 for entry_name in lfs.dir @root .. path
26 continue if '.' == entry_name\sub 1, 1
27 entry_path = @root .. "#{path}/#{entry_name}"
28 if 'directory' == lfs.attributes entry_path, 'mode'
29 coroutine.yield "#{path}/#{entry_name}"
34 -- @TODO: respect $order
35 for path in *paths
36 coroutine.yield path
3037
3138 create_fileder: (parent, name) =>
3239 @log "creating fileder #{path}"
6774 coroutine.wrap ->
6875 for entry_name in lfs.dir @root .. path
6976 entry_path = "#{@root .. path}/#{entry_name}"
77 continue if entry_name == '$order'
7078 if 'file' == lfs.attributes entry_path, 'mode'
7179 entry_name = (entry_name\match '(.*)%.%w+') or entry_name
7280 entry_name = entry_name\gsub '%$', '/'
4444
4545 get_index: (path='', depth=1) =>
4646 pseudo = if depth > 1 or depth < 0 '?tree' else '?index'
47 json = fetch "#{@host .. path}/#{pseudo}: application/json"
47 json = fetch "#{@host .. path}/#{pseudo}: text/json"
4848 parse_json json
4949
5050 -- fileders
5151 list_fileders_in: (path='') =>
5252 coroutine.wrap ->
53 json = fetch "#{@host .. path}/?index: application/json"
53 json = fetch "#{@host .. path}/?index: text/json"
5454 index = parse_json json
5555 for child in js.of index.children
5656 coroutine.yield child.path
7474 -- facets
7575 list_facets: (path) =>
7676 coroutine.wrap ->
77 json = fetch "#{@host .. path}/?index: application/json"
77 json = fetch "#{@host .. path}/?index: text/json"
7878 index = JSON\parse json
7979 for facet in js.of index.facets
8080 coroutine.yield facet.name, facet.type
11 The server doesn't make an exception for static files anymore (as described in [a previous update][2019-10-08]),
22 but rather the files are just in a fileder called `static` now, and properly typed, here:
33
4 - [`/static/style/`](/static/style/:%20text/html+interactive#inspect)
5 - [`/static/mmm/`](/static/mmm/:%20text/html+interactive#inspect)
6 - [`/static/fengari-web/`](/static/fengari-web/:%20text/html+interactive#inspect)
4 - [/static/style/](/static/style/:%20text/html+interactive)
5 - [/static/mmm/](/static/mmm/:%20text/html+interactive)
76
87 This removed a big exception and left the server implementation much cleaner and shorter, as can be seen in the corresponding commit [`005cc9b`][005cc9b].
98
1514
1615 Here are some example links for viewing these:
1716
18 - [`/?index`](/?index)
17 - [`/?index: text/html`](/?index:%20text/html)
1918 - [`/articles/mmmfs/ba_log/?index: text/html`](/articles/mmmfs/ba_log/?index:%20text/html)
2019
2120 Finally I added a third pseudo-facet called `?interactive` that renders the Inspector that the old page ran on,
2323 render: =>
2424 rplc = with div id: @id, :style
2525 \append '(diagram goes here)'
26 -- \append "<script type=\"application/lua\">
26 -- \append "<script type=\"text/lua\">
2727 -- local rplc = js.global.document:getElementById('#{@id}');
2828 -- local fn = #{compile @func}
2929 -- diag = Diagram(fn)
+0
-8
root/static/fengari-web/application$javascript.js less more
0 !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.fengari=e():t.fengari=e()}(window,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var a=e[n]={i:n,l:!1,exports:{}};return t[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)r.d(n,a,function(e){return t[e]}.bind(null,a));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=34)}([function(t,e,r){"use strict";
1 /**
2 @license MIT
3
4 Copyright © 2017-2018 Benoit Giannangeli
5 Copyright © 2017-2018 Daurnimator
6 Copyright © 1994–2017 Lua.org, PUC-Rio.
7 */var n=r(5);t.exports.FENGARI_AUTHORS=n.FENGARI_AUTHORS,t.exports.FENGARI_COPYRIGHT=n.FENGARI_COPYRIGHT,t.exports.FENGARI_RELEASE=n.FENGARI_RELEASE,t.exports.FENGARI_VERSION=n.FENGARI_VERSION,t.exports.FENGARI_VERSION_MAJOR=n.FENGARI_VERSION_MAJOR,t.exports.FENGARI_VERSION_MINOR=n.FENGARI_VERSION_MINOR,t.exports.FENGARI_VERSION_NUM=n.FENGARI_VERSION_NUM,t.exports.FENGARI_VERSION_RELEASE=n.FENGARI_VERSION_RELEASE,t.exports.luastring_eq=n.luastring_eq,t.exports.luastring_indexOf=n.luastring_indexOf,t.exports.luastring_of=n.luastring_of,t.exports.to_jsstring=n.to_jsstring,t.exports.to_luastring=n.to_luastring,t.exports.to_uristring=n.to_uristring;var a=r(3),u=r(2),s=r(7),o=r(17);t.exports.luaconf=a,t.exports.lua=u,t.exports.lauxlib=s,t.exports.lualib=o},function(t,e,r){"use strict";var n,a,u;if(n="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(t){for(var e=0,r=t.length,n=new Uint8Array(r);r>e;)n[e]=t[e++];return n},"function"==typeof(new Uint8Array).indexOf)a=function(t,e,r){return t.indexOf(e,r)};else{var s=[].indexOf;if(0!==s.call(new Uint8Array(1),0))throw Error("missing .indexOf");a=function(t,e,r){return s.call(t,e,r)}}u="function"==typeof Uint8Array.of?Uint8Array.of.bind(Uint8Array):function(){return n(arguments)};var o=function(t){return t instanceof Uint8Array},l="cannot convert invalid utf8 to javascript string",i=";,/?:@&=+$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,-_.!~*'()#".split("").reduce(function(t,e){return t[e.charCodeAt(0)]=!0,t},{}),c={},f=function(t,e){if("string"!=typeof t)throw new TypeError("to_luastring expects a javascript string");if(e){var r=c[t];if(o(r))return r}for(var a=t.length,u=Array(a),s=0,l=0;l<a;++l){var i=t.charCodeAt(l);if(i<=127)u[s++]=i;else if(i<=2047)u[s++]=192|i>>6,u[s++]=128|63&i;else{if(i>=55296&&i<=56319&&l+1<a){var f=t.charCodeAt(l+1);f>=56320&&f<=57343&&(l++,i=1024*(i-55296)+f+9216)}i<=65535?(u[s++]=224|i>>12,u[s++]=128|i>>6&63,u[s++]=128|63&i):(u[s++]=240|i>>18,u[s++]=128|i>>12&63,u[s++]=128|i>>6&63,u[s++]=128|63&i)}}return u=n(u),e&&(c[t]=u),u};t.exports.luastring_from=n,t.exports.luastring_indexOf=a,t.exports.luastring_of=u,t.exports.is_luastring=o,t.exports.luastring_eq=function(t,e){if(t!==e){var r=t.length;if(r!==e.length)return!1;for(var n=0;n<r;n++)if(t[n]!==e[n])return!1}return!0},t.exports.to_jsstring=function(t,e,r,n){if(!o(t))throw new TypeError("to_jsstring expects a Uint8Array");r=void 0===r?t.length:Math.min(t.length,r);for(var a="",u=void 0!==e?e:0;u<r;){var s=t[u++];if(s<128)a+=String.fromCharCode(s);else if(s<194||s>244){if(!n)throw RangeError(l);a+="�"}else if(s<=223){if(u>=r){if(!n)throw RangeError(l);a+="�";continue}var i=t[u++];if(128!=(192&i)){if(!n)throw RangeError(l);a+="�";continue}a+=String.fromCharCode(((31&s)<<6)+(63&i))}else if(s<=239){if(u+1>=r){if(!n)throw RangeError(l);a+="�";continue}var c=t[u++];if(128!=(192&c)){if(!n)throw RangeError(l);a+="�";continue}var f=t[u++];if(128!=(192&f)){if(!n)throw RangeError(l);a+="�";continue}var _=((15&s)<<12)+((63&c)<<6)+(63&f);if(_<=65535)a+=String.fromCharCode(_);else{var p=55296+((_-=65536)>>10),v=_%1024+56320;a+=String.fromCharCode(p,v)}}else{if(u+2>=r){if(!n)throw RangeError(l);a+="�";continue}var h=t[u++];if(128!=(192&h)){if(!n)throw RangeError(l);a+="�";continue}var L=t[u++];if(128!=(192&L)){if(!n)throw RangeError(l);a+="�";continue}var d=t[u++];if(128!=(192&d)){if(!n)throw RangeError(l);a+="�";continue}var A=((7&s)<<18)+((63&h)<<12)+((63&L)<<6)+(63&d),g=55296+((A-=65536)>>10),T=A%1024+56320;a+=String.fromCharCode(g,T)}}return a},t.exports.to_uristring=function(t){if(!o(t))throw new TypeError("to_uristring expects a Uint8Array");for(var e="",r=0;r<t.length;r++){var n=t[r];i[n]?e+=String.fromCharCode(n):e+="%"+(n<16?"0":"")+n.toString(16)}return e},t.exports.to_luastring=f,t.exports.from_userstring=function(t){if(!o(t)){if("string"!=typeof t)throw new TypeError("expects an array of bytes or javascript string");t=f(t)}return t};var _=f("Lua");t.exports.LUA_SIGNATURE=_,t.exports.LUA_VERSION_MAJOR="5",t.exports.LUA_VERSION_MINOR="3",t.exports.LUA_VERSION_NUM=503,t.exports.LUA_VERSION_RELEASE="4",t.exports.LUA_VERSION="Lua 5.3",t.exports.LUA_RELEASE="Lua 5.3.4",t.exports.LUA_COPYRIGHT="Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio",t.exports.LUA_AUTHORS="R. Ierusalimschy, L. H. de Figueiredo, W. Celes";var p={LUA_TNONE:-1,LUA_TNIL:0,LUA_TBOOLEAN:1,LUA_TLIGHTUSERDATA:2,LUA_TNUMBER:3,LUA_TSTRING:4,LUA_TTABLE:5,LUA_TFUNCTION:6,LUA_TUSERDATA:7,LUA_TTHREAD:8,LUA_NUMTAGS:9};p.LUA_TSHRSTR=0|p.LUA_TSTRING,p.LUA_TLNGSTR=16|p.LUA_TSTRING,p.LUA_TNUMFLT=0|p.LUA_TNUMBER,p.LUA_TNUMINT=16|p.LUA_TNUMBER,p.LUA_TLCL=0|p.LUA_TFUNCTION,p.LUA_TLCF=16|p.LUA_TFUNCTION,p.LUA_TCCL=32|p.LUA_TFUNCTION;var v=-r(3).LUAI_MAXSTACK-1e3;t.exports.LUA_HOOKCALL=0,t.exports.LUA_HOOKCOUNT=3,t.exports.LUA_HOOKLINE=2,t.exports.LUA_HOOKRET=1,t.exports.LUA_HOOKTAILCALL=4,t.exports.LUA_MASKCALL=1,t.exports.LUA_MASKCOUNT=8,t.exports.LUA_MASKLINE=4,t.exports.LUA_MASKRET=2,t.exports.LUA_MINSTACK=20,t.exports.LUA_MULTRET=-1,t.exports.LUA_OPADD=0,t.exports.LUA_OPBAND=7,t.exports.LUA_OPBNOT=13,t.exports.LUA_OPBOR=8,t.exports.LUA_OPBXOR=9,t.exports.LUA_OPDIV=5,t.exports.LUA_OPEQ=0,t.exports.LUA_OPIDIV=6,t.exports.LUA_OPLE=2,t.exports.LUA_OPLT=1,t.exports.LUA_OPMOD=3,t.exports.LUA_OPMUL=2,t.exports.LUA_OPPOW=4,t.exports.LUA_OPSHL=10,t.exports.LUA_OPSHR=11,t.exports.LUA_OPSUB=1,t.exports.LUA_OPUNM=12,t.exports.LUA_REGISTRYINDEX=v,t.exports.LUA_RIDX_GLOBALS=2,t.exports.LUA_RIDX_LAST=2,t.exports.LUA_RIDX_MAINTHREAD=1,t.exports.constant_types=p,t.exports.lua_Debug=function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.event=NaN,this.name=null,this.namewhat=null,this.what=null,this.source=null,this.currentline=NaN,this.linedefined=NaN,this.lastlinedefined=NaN,this.nups=NaN,this.nparams=NaN,this.isvararg=NaN,this.istailcall=NaN,this.short_src=null,this.i_ci=null},t.exports.lua_upvalueindex=function(t){return v-t},t.exports.thread_status={LUA_OK:0,LUA_YIELD:1,LUA_ERRRUN:2,LUA_ERRSYNTAX:3,LUA_ERRMEM:4,LUA_ERRGCMM:5,LUA_ERRERR:6}},function(t,e,r){"use strict";var n=r(1),a=r(19),u=r(11),s=r(8),o=r(12);t.exports.LUA_AUTHORS=n.LUA_AUTHORS,t.exports.LUA_COPYRIGHT=n.LUA_COPYRIGHT,t.exports.LUA_ERRERR=n.thread_status.LUA_ERRERR,t.exports.LUA_ERRGCMM=n.thread_status.LUA_ERRGCMM,t.exports.LUA_ERRMEM=n.thread_status.LUA_ERRMEM,t.exports.LUA_ERRRUN=n.thread_status.LUA_ERRRUN,t.exports.LUA_ERRSYNTAX=n.thread_status.LUA_ERRSYNTAX,t.exports.LUA_HOOKCALL=n.LUA_HOOKCALL,t.exports.LUA_HOOKCOUNT=n.LUA_HOOKCOUNT,t.exports.LUA_HOOKLINE=n.LUA_HOOKLINE,t.exports.LUA_HOOKRET=n.LUA_HOOKRET,t.exports.LUA_HOOKTAILCALL=n.LUA_HOOKTAILCALL,t.exports.LUA_MASKCALL=n.LUA_MASKCALL,t.exports.LUA_MASKCOUNT=n.LUA_MASKCOUNT,t.exports.LUA_MASKLINE=n.LUA_MASKLINE,t.exports.LUA_MASKRET=n.LUA_MASKRET,t.exports.LUA_MINSTACK=n.LUA_MINSTACK,t.exports.LUA_MULTRET=n.LUA_MULTRET,t.exports.LUA_NUMTAGS=n.constant_types.LUA_NUMTAGS,t.exports.LUA_OK=n.thread_status.LUA_OK,t.exports.LUA_OPADD=n.LUA_OPADD,t.exports.LUA_OPBAND=n.LUA_OPBAND,t.exports.LUA_OPBNOT=n.LUA_OPBNOT,t.exports.LUA_OPBOR=n.LUA_OPBOR,t.exports.LUA_OPBXOR=n.LUA_OPBXOR,t.exports.LUA_OPDIV=n.LUA_OPDIV,t.exports.LUA_OPEQ=n.LUA_OPEQ,t.exports.LUA_OPIDIV=n.LUA_OPIDIV,t.exports.LUA_OPLE=n.LUA_OPLE,t.exports.LUA_OPLT=n.LUA_OPLT,t.exports.LUA_OPMOD=n.LUA_OPMOD,t.exports.LUA_OPMUL=n.LUA_OPMUL,t.exports.LUA_OPPOW=n.LUA_OPPOW,t.exports.LUA_OPSHL=n.LUA_OPSHL,t.exports.LUA_OPSHR=n.LUA_OPSHR,t.exports.LUA_OPSUB=n.LUA_OPSUB,t.exports.LUA_OPUNM=n.LUA_OPUNM,t.exports.LUA_REGISTRYINDEX=n.LUA_REGISTRYINDEX,t.exports.LUA_RELEASE=n.LUA_RELEASE,t.exports.LUA_RIDX_GLOBALS=n.LUA_RIDX_GLOBALS,t.exports.LUA_RIDX_LAST=n.LUA_RIDX_LAST,t.exports.LUA_RIDX_MAINTHREAD=n.LUA_RIDX_MAINTHREAD,t.exports.LUA_SIGNATURE=n.LUA_SIGNATURE,t.exports.LUA_TNONE=n.constant_types.LUA_TNONE,t.exports.LUA_TNIL=n.constant_types.LUA_TNIL,t.exports.LUA_TBOOLEAN=n.constant_types.LUA_TBOOLEAN,t.exports.LUA_TLIGHTUSERDATA=n.constant_types.LUA_TLIGHTUSERDATA,t.exports.LUA_TNUMBER=n.constant_types.LUA_TNUMBER,t.exports.LUA_TSTRING=n.constant_types.LUA_TSTRING,t.exports.LUA_TTABLE=n.constant_types.LUA_TTABLE,t.exports.LUA_TFUNCTION=n.constant_types.LUA_TFUNCTION,t.exports.LUA_TUSERDATA=n.constant_types.LUA_TUSERDATA,t.exports.LUA_TTHREAD=n.constant_types.LUA_TTHREAD,t.exports.LUA_VERSION=n.LUA_VERSION,t.exports.LUA_VERSION_MAJOR=n.LUA_VERSION_MAJOR,t.exports.LUA_VERSION_MINOR=n.LUA_VERSION_MINOR,t.exports.LUA_VERSION_NUM=n.LUA_VERSION_NUM,t.exports.LUA_VERSION_RELEASE=n.LUA_VERSION_RELEASE,t.exports.LUA_YIELD=n.thread_status.LUA_YIELD,t.exports.lua_Debug=n.lua_Debug,t.exports.lua_upvalueindex=n.lua_upvalueindex,t.exports.lua_absindex=a.lua_absindex,t.exports.lua_arith=a.lua_arith,t.exports.lua_atpanic=a.lua_atpanic,t.exports.lua_atnativeerror=a.lua_atnativeerror,t.exports.lua_call=a.lua_call,t.exports.lua_callk=a.lua_callk,t.exports.lua_checkstack=a.lua_checkstack,t.exports.lua_close=o.lua_close,t.exports.lua_compare=a.lua_compare,t.exports.lua_concat=a.lua_concat,t.exports.lua_copy=a.lua_copy,t.exports.lua_createtable=a.lua_createtable,t.exports.lua_dump=a.lua_dump,t.exports.lua_error=a.lua_error,t.exports.lua_gc=a.lua_gc,t.exports.lua_getallocf=a.lua_getallocf,t.exports.lua_getextraspace=a.lua_getextraspace,t.exports.lua_getfield=a.lua_getfield,t.exports.lua_getglobal=a.lua_getglobal,t.exports.lua_gethook=u.lua_gethook,t.exports.lua_gethookcount=u.lua_gethookcount,t.exports.lua_gethookmask=u.lua_gethookmask,t.exports.lua_geti=a.lua_geti,t.exports.lua_getinfo=u.lua_getinfo,t.exports.lua_getlocal=u.lua_getlocal,t.exports.lua_getmetatable=a.lua_getmetatable,t.exports.lua_getstack=u.lua_getstack,t.exports.lua_gettable=a.lua_gettable,t.exports.lua_gettop=a.lua_gettop,t.exports.lua_getupvalue=a.lua_getupvalue,t.exports.lua_getuservalue=a.lua_getuservalue,t.exports.lua_insert=a.lua_insert,t.exports.lua_isboolean=a.lua_isboolean,t.exports.lua_iscfunction=a.lua_iscfunction,t.exports.lua_isfunction=a.lua_isfunction,t.exports.lua_isinteger=a.lua_isinteger,t.exports.lua_islightuserdata=a.lua_islightuserdata,t.exports.lua_isnil=a.lua_isnil,t.exports.lua_isnone=a.lua_isnone,t.exports.lua_isnoneornil=a.lua_isnoneornil,t.exports.lua_isnumber=a.lua_isnumber,t.exports.lua_isproxy=a.lua_isproxy,t.exports.lua_isstring=a.lua_isstring,t.exports.lua_istable=a.lua_istable,t.exports.lua_isthread=a.lua_isthread,t.exports.lua_isuserdata=a.lua_isuserdata,t.exports.lua_isyieldable=s.lua_isyieldable,t.exports.lua_len=a.lua_len,t.exports.lua_load=a.lua_load,t.exports.lua_newstate=o.lua_newstate,t.exports.lua_newtable=a.lua_newtable,t.exports.lua_newthread=o.lua_newthread,t.exports.lua_newuserdata=a.lua_newuserdata,t.exports.lua_next=a.lua_next,t.exports.lua_pcall=a.lua_pcall,t.exports.lua_pcallk=a.lua_pcallk,t.exports.lua_pop=a.lua_pop,t.exports.lua_pushboolean=a.lua_pushboolean,t.exports.lua_pushcclosure=a.lua_pushcclosure,t.exports.lua_pushcfunction=a.lua_pushcfunction,t.exports.lua_pushfstring=a.lua_pushfstring,t.exports.lua_pushglobaltable=a.lua_pushglobaltable,t.exports.lua_pushinteger=a.lua_pushinteger,t.exports.lua_pushjsclosure=a.lua_pushjsclosure,t.exports.lua_pushjsfunction=a.lua_pushjsfunction,t.exports.lua_pushlightuserdata=a.lua_pushlightuserdata,t.exports.lua_pushliteral=a.lua_pushliteral,t.exports.lua_pushlstring=a.lua_pushlstring,t.exports.lua_pushnil=a.lua_pushnil,t.exports.lua_pushnumber=a.lua_pushnumber,t.exports.lua_pushstring=a.lua_pushstring,t.exports.lua_pushthread=a.lua_pushthread,t.exports.lua_pushvalue=a.lua_pushvalue,t.exports.lua_pushvfstring=a.lua_pushvfstring,t.exports.lua_rawequal=a.lua_rawequal,t.exports.lua_rawget=a.lua_rawget,t.exports.lua_rawgeti=a.lua_rawgeti,t.exports.lua_rawgetp=a.lua_rawgetp,t.exports.lua_rawlen=a.lua_rawlen,t.exports.lua_rawset=a.lua_rawset,t.exports.lua_rawseti=a.lua_rawseti,t.exports.lua_rawsetp=a.lua_rawsetp,t.exports.lua_register=a.lua_register,t.exports.lua_remove=a.lua_remove,t.exports.lua_replace=a.lua_replace,t.exports.lua_resume=s.lua_resume,t.exports.lua_rotate=a.lua_rotate,t.exports.lua_setallof=s.lua_setallof,t.exports.lua_setfield=a.lua_setfield,t.exports.lua_setglobal=a.lua_setglobal,t.exports.lua_sethook=u.lua_sethook,t.exports.lua_seti=a.lua_seti,t.exports.lua_setlocal=u.lua_setlocal,t.exports.lua_setmetatable=a.lua_setmetatable,t.exports.lua_settable=a.lua_settable,t.exports.lua_settop=a.lua_settop,t.exports.lua_setupvalue=a.lua_setupvalue,t.exports.lua_setuservalue=a.lua_setuservalue,t.exports.lua_status=a.lua_status,t.exports.lua_stringtonumber=a.lua_stringtonumber,t.exports.lua_toboolean=a.lua_toboolean,t.exports.lua_todataview=a.lua_todataview,t.exports.lua_tointeger=a.lua_tointeger,t.exports.lua_tointegerx=a.lua_tointegerx,t.exports.lua_tojsstring=a.lua_tojsstring,t.exports.lua_tolstring=a.lua_tolstring,t.exports.lua_tonumber=a.lua_tonumber,t.exports.lua_tonumberx=a.lua_tonumberx,t.exports.lua_topointer=a.lua_topointer,t.exports.lua_toproxy=a.lua_toproxy,t.exports.lua_tostring=a.lua_tostring,t.exports.lua_tothread=a.lua_tothread,t.exports.lua_touserdata=a.lua_touserdata,t.exports.lua_type=a.lua_type,t.exports.lua_typename=a.lua_typename,t.exports.lua_upvalueid=a.lua_upvalueid,t.exports.lua_upvaluejoin=a.lua_upvaluejoin,t.exports.lua_version=a.lua_version,t.exports.lua_xmove=a.lua_xmove,t.exports.lua_yield=s.lua_yield,t.exports.lua_yieldk=s.lua_yieldk,t.exports.lua_tocfunction=a.lua_tocfunction},function(t,e,r){"use strict";var n={},a=r(1),u=a.LUA_VERSION_MAJOR,s=a.LUA_VERSION_MINOR,o=a.to_luastring;t.exports.LUA_PATH_SEP=";";t.exports.LUA_PATH_MARK="?";t.exports.LUA_EXEC_DIR="!";var l=u+"."+s;t.exports.LUA_VDIR=l;t.exports.LUA_DIRSEP="/";var i="./lua/"+l+"/";t.exports.LUA_LDIR=i;var c=i;t.exports.LUA_JSDIR=c;var f=o(i+"?.lua;"+i+"?/init.lua;./?.lua;./?/init.lua");t.exports.LUA_PATH_DEFAULT=f;var _=o(c+"?.js;"+c+"loadall.js;./?.js");t.exports.LUA_JSPATH_DEFAULT=_;var p=n.LUA_COMPAT_FLOATSTRING||!1,v=n.LUAI_MAXSTACK||1e6,h=n.LUA_IDSIZE||59,L="%".concat("","d"),d=n.LUAL_BUFFERSIZE||8192,A=function(t,e){for(var r=Math.min(3,Math.ceil(Math.abs(e)/1023)),n=t,a=0;a<r;a++)n*=Math.pow(2,Math.floor((e+a)/r));return n};t.exports.LUAI_MAXSTACK=v,t.exports.LUA_COMPAT_FLOATSTRING=p,t.exports.LUA_IDSIZE=h,t.exports.LUA_INTEGER_FMT=L,t.exports.LUA_INTEGER_FRMLEN="",t.exports.LUA_MAXINTEGER=2147483647,t.exports.LUA_MININTEGER=-2147483648,t.exports.LUA_NUMBER_FMT="%.14g",t.exports.LUA_NUMBER_FRMLEN="",t.exports.LUAL_BUFFERSIZE=d,t.exports.frexp=function(t){if(0===t)return[t,0];var e=new DataView(new ArrayBuffer(8));e.setFloat64(0,t);var r=e.getUint32(0)>>>20&2047;0===r&&(e.setFloat64(0,t*Math.pow(2,64)),r=(e.getUint32(0)>>>20&2047)-64);var n=r-1022;return[A(t,-n),n]},t.exports.ldexp=A,t.exports.lua_getlocaledecpoint=function(){return 46},t.exports.lua_integer2str=function(t){return String(t)},t.exports.lua_number2str=function(t){return String(Number(t.toPrecision(14)))},t.exports.lua_numbertointeger=function(t){return t>=-2147483648&&t<2147483648&&t},t.exports.luai_apicheck=function(t,e){if(!e)throw Error(e)}},function(t,e,r){"use strict";var n=r(3).luai_apicheck,a=function(t){if(!t)throw Error("assertion failed")};t.exports.lua_assert=a,t.exports.luai_apicheck=n||function(t,e){return a(e)};t.exports.api_check=function(t,e,r){return n(t,e&&r)};t.exports.LUAI_MAXCCALLS=200;t.exports.LUA_MINBUFFER=32;t.exports.luai_nummod=function(t,e,r){var n=e%r;return n*r<0&&(n+=r),n};t.exports.MAX_INT=2147483647;t.exports.MIN_INT=-2147483648},function(t,e,r){var n=r(1),a="Fengari 0.1.4 Copyright (C) 2017-2018 B. Giannangeli, Daurnimator\nBased on: "+n.LUA_COPYRIGHT;t.exports.FENGARI_AUTHORS="B. Giannangeli, Daurnimator",t.exports.FENGARI_COPYRIGHT=a,t.exports.FENGARI_RELEASE="Fengari 0.1.4",t.exports.FENGARI_VERSION="Fengari 0.1",t.exports.FENGARI_VERSION_MAJOR="0",t.exports.FENGARI_VERSION_MINOR="1",t.exports.FENGARI_VERSION_NUM=1,t.exports.FENGARI_VERSION_RELEASE="4",t.exports.is_luastring=n.is_luastring,t.exports.luastring_eq=n.luastring_eq,t.exports.luastring_from=n.luastring_from,t.exports.luastring_indexOf=n.luastring_indexOf,t.exports.luastring_of=n.luastring_of,t.exports.to_jsstring=n.to_jsstring,t.exports.to_luastring=n.to_luastring,t.exports.to_uristring=n.to_uristring,t.exports.from_userstring=n.from_userstring},function(t,e,r){"use strict";var n;function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var l=r(1),i=l.LUA_OPADD,c=l.LUA_OPBAND,f=l.LUA_OPBNOT,_=l.LUA_OPBOR,p=l.LUA_OPBXOR,v=l.LUA_OPDIV,h=l.LUA_OPIDIV,L=l.LUA_OPMOD,d=l.LUA_OPMUL,A=l.LUA_OPPOW,g=l.LUA_OPSHL,T=l.LUA_OPSHR,x=l.LUA_OPSUB,b=l.LUA_OPUNM,k=l.constant_types,O=k.LUA_NUMTAGS,E=k.LUA_TBOOLEAN,m=k.LUA_TCCL,U=k.LUA_TFUNCTION,N=k.LUA_TLCF,R=k.LUA_TLCL,y=k.LUA_TLIGHTUSERDATA,S=k.LUA_TLNGSTR,w=k.LUA_TNIL,I=k.LUA_TNUMBER,M=k.LUA_TNUMFLT,P=k.LUA_TNUMINT,C=k.LUA_TSHRSTR,D=k.LUA_TSTRING,V=k.LUA_TTABLE,B=k.LUA_TTHREAD,G=k.LUA_TUSERDATA,K=l.from_userstring,F=l.luastring_indexOf,j=l.luastring_of,H=l.to_jsstring,X=l.to_luastring,z=r(22),Y=z.lisdigit,J=z.lisprint,Z=z.lisspace,q=z.lisxdigit,W=r(11),Q=r(8),$=r(12),tt=r(10),et=tt.luaS_bless,rt=tt.luaS_new,nt=r(9),at=r(3),ut=at.LUA_COMPAT_FLOATSTRING,st=at.ldexp,ot=at.lua_integer2str,lt=at.lua_number2str,it=r(15),ct=r(4),ft=ct.MAX_INT,_t=ct.luai_nummod,pt=ct.lua_assert,vt=r(14),ht=O,Lt=O+1,dt=function(){function t(e,r){s(this,t),this.type=e,this.value=r}return function(t,e,r){e&&o(t.prototype,e),r&&o(t,r)}(t,[{key:"ttype",value:function(){return 63&this.type}},{key:"ttnov",value:function(){return 15&this.type}},{key:"checktag",value:function(t){return this.type===t}},{key:"checktype",value:function(t){return this.ttnov()===t}},{key:"ttisnumber",value:function(){return this.checktype(I)}},{key:"ttisfloat",value:function(){return this.checktag(M)}},{key:"ttisinteger",value:function(){return this.checktag(P)}},{key:"ttisnil",value:function(){return this.checktag(w)}},{key:"ttisboolean",value:function(){return this.checktag(E)}},{key:"ttislightuserdata",value:function(){return this.checktag(y)}},{key:"ttisstring",value:function(){return this.checktype(D)}},{key:"ttisshrstring",value:function(){return this.checktag(C)}},{key:"ttislngstring",value:function(){return this.checktag(S)}},{key:"ttistable",value:function(){return this.checktag(V)}},{key:"ttisfunction",value:function(){return this.checktype(U)}},{key:"ttisclosure",value:function(){return(31&this.type)===U}},{key:"ttisCclosure",value:function(){return this.checktag(m)}},{key:"ttisLclosure",value:function(){return this.checktag(R)}},{key:"ttislcf",value:function(){return this.checktag(N)}},{key:"ttisfulluserdata",value:function(){return this.checktag(G)}},{key:"ttisthread",value:function(){return this.checktag(B)}},{key:"ttisdeadkey",value:function(){return this.checktag(Lt)}},{key:"l_isfalse",value:function(){return this.ttisnil()||this.ttisboolean()&&!1===this.value}},{key:"setfltvalue",value:function(t){this.type=M,this.value=t}},{key:"chgfltvalue",value:function(t){pt(this.type==M),this.value=t}},{key:"setivalue",value:function(t){this.type=P,this.value=t}},{key:"chgivalue",value:function(t){pt(this.type==P),this.value=t}},{key:"setnilvalue",value:function(){this.type=w,this.value=null}},{key:"setfvalue",value:function(t){this.type=N,this.value=t}},{key:"setpvalue",value:function(t){this.type=y,this.value=t}},{key:"setbvalue",value:function(t){this.type=E,this.value=t}},{key:"setsvalue",value:function(t){this.type=S,this.value=t}},{key:"setuvalue",value:function(t){this.type=G,this.value=t}},{key:"setthvalue",value:function(t){this.type=B,this.value=t}},{key:"setclLvalue",value:function(t){this.type=R,this.value=t}},{key:"setclCvalue",value:function(t){this.type=m,this.value=t}},{key:"sethvalue",value:function(t){this.type=V,this.value=t}},{key:"setdeadvalue",value:function(){this.type=Lt,this.value=null}},{key:"setfrom",value:function(t){this.type=t.type,this.value=t.value}},{key:"tsvalue",value:function(){return pt(this.ttisstring()),this.value}},{key:"svalue",value:function(){return this.tsvalue().getstr()}},{key:"vslen",value:function(){return this.tsvalue().tsslen()}},{key:"jsstring",value:function(t,e){return H(this.svalue(),t,e,!0)}}]),t}(),At=function(t,e,r){t.stack[e].setsvalue(r)},gt=new dt(w,null);Object.freeze(gt),t.exports.luaO_nilobject=gt;var Tt=function t(e,r){s(this,t),this.id=e.l_G.id_counter++,this.p=null,this.nupvalues=r,this.upvals=new Array(r)},xt=function t(e,r,n){for(s(this,t),this.id=e.l_G.id_counter++,this.f=r,this.nupvalues=n,this.upvalue=new Array(n);n--;)this.upvalue[n]=new dt(w,null)},bt=function t(e,r){s(this,t),this.id=e.l_G.id_counter++,this.metatable=null,this.uservalue=new dt(w,null),this.len=r,this.data=Object.create(null)},kt=X("..."),Ot=X('[string "'),Et=X('"]'),mt=function(t){return Y(t)?t-48:(223&t)-55},Ut=function(t,e){var r=1;if(pt(e<=1114111),e<128)t[7]=e;else{var n=63;do{t[8-r++]=128|63&e,e>>=6,n>>=1}while(e>n);t[8-r]=~n<<1|e}return r},Nt=function(t,e){var r="x"===e?function(t){for(var e,r=0,n=0,a=0,u=0,s=0,o=!1;Z(t[r]);)r++;if((e=45===t[r])?r++:43===t[r]&&r++,48!==t[r]||120!==t[r+1]&&88!==t[r+1])return null;for(r+=2;;r++)if(46===t[r]){if(o)break;o=!0}else{if(!q(t[r]))break;0===a&&48===t[r]?u++:++a<=30?n=16*n+mt(t[r]):s++,o&&s--}if(u+a===0)return null;if(s*=4,112===t[r]||80===t[r]){var l,i=0;if((l=45===t[++r])?r++:43===t[r]&&r++,!Y(t[r]))return null;for(;Y(t[r]);)i=10*i+t[r++]-48;l&&(i=-i),s+=i}return e&&(n=-n),{n:st(n,s),i:r}}(t):function(t){try{t=H(t)}catch(t){return null}var e=/^[\t\v\f \n\r]*[+-]?(?:[0-9]+\.?[0-9]*|\.[0-9]*)(?:[eE][+-]?[0-9]+)?/.exec(t);if(!e)return null;var r=parseFloat(e[0]);return isNaN(r)?null:{n:r,i:e[0].length}}(t);if(null===r)return null;for(;Z(t[r.i]);)r.i++;return r.i===t.length||0===t[r.i]?r:null},Rt=[46,120,88,110,78],yt=(u(n={},46,"."),u(n,120,"x"),u(n,88,"x"),u(n,110,"n"),u(n,78,"n"),n),St=Math.floor(ft/10),wt=ft%10,It=function(t,e){var r;if(e.ttisinteger())r=X(ot(e.value));else{var n=lt(e.value);!ut&&/^[-0123456789]+$/.test(n)&&(n+=".0"),r=X(n)}e.setsvalue(et(t,r))},Mt=function(t,e){Q.luaD_inctop(t),At(t,t.top-1,rt(t,e))},Pt=function(t,e,r){for(var n,u=0,s=0,o=0;-1!=(n=F(e,37,s));){switch(Mt(t,e.subarray(s,n)),e[n+1]){case 115:var l=r[o++];if(null===l)l=X("(null)",!0);else{l=K(l);var i=F(l,0);-1!==i&&(l=l.subarray(0,i))}Mt(t,l);break;case 99:var c=r[o++];J(c)?Mt(t,j(c)):Ct(t,X("<\\%d>",!0),c);break;case 100:case 73:Q.luaD_inctop(t),t.stack[t.top-1].setivalue(r[o++]),It(t,t.stack[t.top-1]);break;case 102:Q.luaD_inctop(t),t.stack[t.top-1].setfltvalue(r[o++]),It(t,t.stack[t.top-1]);break;case 112:var f=r[o++];if(f instanceof $.lua_State||f instanceof nt.Table||f instanceof bt||f instanceof Tt||f instanceof xt)Mt(t,X("0x"+f.id.toString(16)));else switch(a(f)){case"undefined":Mt(t,X("undefined"));break;case"number":Mt(t,X("Number("+f+")"));break;case"string":Mt(t,X("String("+JSON.stringify(f)+")"));break;case"boolean":Mt(t,X(f?"Boolean(true)":"Boolean(false)"));break;case"object":if(null===f){Mt(t,X("null"));break}case"function":var _=t.l_G.ids.get(f);_||(_=t.l_G.id_counter++,t.l_G.ids.set(f,_)),Mt(t,X("0x"+_.toString(16)));break;default:Mt(t,X("<id NYI>"))}break;case 85:var p=new Uint8Array(8),v=Ut(p,r[o++]);Mt(t,p.subarray(8-v));break;case 37:Mt(t,X("%",!0));break;default:W.luaG_runerror(t,X("invalid option '%%%c' to 'lua_pushfstring'"),e[n+1])}u+=2,s=n+2}return Q.luaD_checkstack(t,1),Mt(t,e.subarray(s)),u>0&&it.luaV_concat(t,u+1),t.stack[t.top-1].svalue()},Ct=function(t,e){for(var r=arguments.length,n=new Array(r>2?r-2:0),a=2;a<r;a++)n[a-2]=arguments[a];return Pt(t,e,n)},Dt=function(t,e,r,n){switch(e){case i:return r+n|0;case x:return r-n|0;case d:return it.luaV_imul(r,n);case L:return it.luaV_mod(t,r,n);case h:return it.luaV_div(t,r,n);case c:return r&n;case _:return r|n;case p:return r^n;case g:return it.luaV_shiftl(r,n);case T:return it.luaV_shiftl(r,-n);case b:return 0-r|0;case f:return-1^r;default:pt(0)}},Vt=function(t,e,r,n){switch(e){case i:return r+n;case x:return r-n;case d:return r*n;case v:return r/n;case A:return Math.pow(r,n);case h:return Math.floor(r/n);case b:return-r;case L:return _t(t,r,n);default:pt(0)}};t.exports.CClosure=xt,t.exports.LClosure=Tt,t.exports.LUA_TDEADKEY=Lt,t.exports.LUA_TPROTO=ht,t.exports.LocVar=function t(){s(this,t),this.varname=null,this.startpc=NaN,this.endpc=NaN},t.exports.TValue=dt,t.exports.Udata=bt,t.exports.UTF8BUFFSZ=8,t.exports.luaO_arith=function(t,e,r,n,a){var u="number"==typeof a?t.stack[a]:a;switch(e){case c:case _:case p:case g:case T:case f:var s,o;if(!1!==(s=it.tointeger(r))&&!1!==(o=it.tointeger(n)))return void u.setivalue(Dt(t,e,s,o));break;case v:case A:var l,h;if(!1!==(l=it.tonumber(r))&&!1!==(h=it.tonumber(n)))return void u.setfltvalue(Vt(t,e,l,h));break;default:var L,d;if(r.ttisinteger()&&n.ttisinteger())return void u.setivalue(Dt(t,e,r.value,n.value));if(!1!==(L=it.tonumber(r))&&!1!==(d=it.tonumber(n)))return void u.setfltvalue(Vt(t,e,L,d))}pt(null!==t),vt.luaT_trybinTM(t,r,n,a,e-i+vt.TMS.TM_ADD)},t.exports.luaO_chunkid=function(t,e){var r,n=t.length;if(61===t[0])n<e?(r=new Uint8Array(n-1)).set(t.subarray(1)):(r=new Uint8Array(e)).set(t.subarray(1,e+1));else if(64===t[0])n<=e?(r=new Uint8Array(n-1)).set(t.subarray(1)):((r=new Uint8Array(e)).set(kt),e-=kt.length,r.set(t.subarray(n-e),kt.length));else{r=new Uint8Array(e);var a=F(t,10);r.set(Ot);var u=Ot.length;n<(e-=Ot.length+kt.length+Et.length)&&-1===a?(r.set(t,u),u+=t.length):(-1!==a&&(n=a),n>e&&(n=e),r.set(t.subarray(0,n),u),u+=n,r.set(kt,u),u+=kt.length),r.set(Et,u),u+=Et.length,r=r.subarray(0,u)}return r},t.exports.luaO_hexavalue=mt,t.exports.luaO_int2fb=function(t){var e=0;if(t<8)return t;for(;t>=128;)t=t+15>>4,e+=4;for(;t>=16;)t=t+1>>1,e++;return e+1<<3|t-8},t.exports.luaO_pushfstring=Ct,t.exports.luaO_pushvfstring=Pt,t.exports.luaO_str2num=function(t,e){var r=function(t){for(var e,r=0,n=0,a=!0;Z(t[r]);)r++;if((e=45===t[r])?r++:43===t[r]&&r++,48!==t[r]||120!==t[r+1]&&88!==t[r+1])for(;r<t.length&&Y(t[r]);r++){var u=t[r]-48;if(n>=St&&(n>St||u>wt+e))return null;n=10*n+u|0,a=!1}else for(r+=2;r<t.length&&q(t[r]);r++)n=16*n+mt(t[r])|0,a=!1;for(;r<t.length&&Z(t[r]);)r++;return a||r!==t.length&&0!==t[r]?null:{n:0|(e?-n:n),i:r}}(t);return null!==r?(e.setivalue(r.n),r.i+1):null!==(r=function(t){for(var e=t.length,r=0,n=0;n<e;n++){var a=t[n];if(-1!==Rt.indexOf(a)){r=a;break}}var u=yt[r];return"n"===u?null:Nt(t,u)}(t))?(e.setfltvalue(r.n),r.i+1):0},t.exports.luaO_tostring=It,t.exports.luaO_utf8esc=Ut,t.exports.numarith=Vt,t.exports.pushobj2s=function(t,e){t.stack[t.top++]=new dt(e.type,e.value)},t.exports.pushsvalue2s=function(t,e){t.stack[t.top++]=new dt(S,e)},t.exports.setobjs2s=function(t,e,r){t.stack[e].setfrom(t.stack[r])},t.exports.setobj2s=function(t,e,r){t.stack[e].setfrom(r)},t.exports.setsvalue2s=At},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a,u,s=r(3).LUAL_BUFFERSIZE,o=r(2),l=o.LUA_ERRERR,i=o.LUA_MULTRET,c=o.LUA_REGISTRYINDEX,f=o.LUA_SIGNATURE,_=o.LUA_TBOOLEAN,p=o.LUA_TLIGHTUSERDATA,v=o.LUA_TNIL,h=o.LUA_TNONE,L=o.LUA_TNUMBER,d=o.LUA_TSTRING,A=o.LUA_TTABLE,g=o.LUA_VERSION_NUM,T=o.lua_Debug,x=o.lua_absindex,b=o.lua_atpanic,k=o.lua_call,O=o.lua_checkstack,E=o.lua_concat,m=o.lua_copy,U=o.lua_createtable,N=o.lua_error,R=o.lua_getfield,y=o.lua_getinfo,S=o.lua_getmetatable,w=o.lua_getstack,I=o.lua_gettop,M=o.lua_insert,P=o.lua_isinteger,C=o.lua_isnil,D=o.lua_isnumber,V=o.lua_isstring,B=o.lua_istable,G=o.lua_len,K=o.lua_load,F=o.lua_newstate,j=o.lua_newtable,H=o.lua_next,X=o.lua_pcall,z=o.lua_pop,Y=o.lua_pushboolean,J=o.lua_pushcclosure,Z=o.lua_pushcfunction,q=o.lua_pushfstring,W=o.lua_pushinteger,Q=o.lua_pushliteral,$=o.lua_pushlstring,tt=o.lua_pushnil,et=o.lua_pushstring,rt=o.lua_pushvalue,nt=o.lua_pushvfstring,at=o.lua_rawequal,ut=o.lua_rawget,st=o.lua_rawgeti,ot=o.lua_rawlen,lt=o.lua_rawseti,it=o.lua_remove,ct=o.lua_setfield,ft=o.lua_setglobal,_t=o.lua_setmetatable,pt=o.lua_settop,vt=o.lua_toboolean,ht=o.lua_tointeger,Lt=o.lua_tointegerx,dt=o.lua_tojsstring,At=o.lua_tolstring,gt=o.lua_tonumber,Tt=o.lua_tonumberx,xt=o.lua_topointer,bt=o.lua_tostring,kt=o.lua_touserdata,Ot=o.lua_type,Et=o.lua_typename,mt=o.lua_version,Ut=r(5),Nt=Ut.from_userstring,Rt=Ut.luastring_eq,yt=Ut.to_luastring,St=Ut.to_uristring,wt=l+1,It=yt("_LOADED"),Mt=yt("_PRELOAD"),Pt=yt("FILE*"),Ct=yt("__name"),Dt=yt("__tostring"),Vt=new Uint8Array(0),Bt=function t(){n(this,t),this.L=null,this.b=Vt,this.n=0},Gt=function(t,e){var r=I(t);if(y(t,yt("f"),e),R(t,c,It),function t(e,r,n){if(0===n||!B(e,-1))return 0;for(tt(e);H(e,-2);){if(Ot(e,-2)===d){if(at(e,r,-1))return z(e,1),1;if(t(e,r,n-1))return it(e,-2),Q(e,"."),M(e,-2),E(e,3),1}z(e,1)}return 0}(t,r+1,2)){var n=bt(t,-1);return 95===n[0]&&71===n[1]&&46===n[2]&&(et(t,n.subarray(3)),it(t,-2)),m(t,-1,r+1),z(t,2),1}return pt(t,r),0},Kt=function(t,e){Gt(t,e)?(q(t,yt("function '%s'"),bt(t,-1)),it(t,-2)):0!==e.namewhat.length?q(t,yt("%s '%s'"),e.namewhat,e.name):e.what&&109===e.what[0]?Q(t,"main chunk"):e.what&&76===e.what[0]?q(t,yt("function <%s:%d>"),e.short_src,e.linedefined):Q(t,"?")},Ft=function(t){var e="PANIC: unprotected error in call to Lua API ("+dt(t,-1)+")";throw new Error(e)},jt=function(t,e,r){var n=new T;return w(t,0,n)?(y(t,yt("n"),n),Rt(n.namewhat,yt("method"))&&0===--e?zt(t,yt("calling '%s' on bad self (%s)"),n.name,r):(null===n.name&&(n.name=Gt(t,n)?bt(t,-1):yt("?")),zt(t,yt("bad argument #%d to '%s' (%s)"),e,n.name,r))):zt(t,yt("bad argument #%d (%s)"),e,r)},Ht=function(t,e,r){var n;n=he(t,e,Ct)===d?bt(t,-1):Ot(t,e)===p?yt("light userdata",!0):Wt(t,e);var a=q(t,yt("%s expected, got %s"),r,n);return jt(t,e,a)},Xt=function(t,e){var r=new T;w(t,e,r)&&(y(t,yt("Sl",!0),r),r.currentline>0)?q(t,yt("%s:%d: "),r.short_src,r.currentline):et(t,yt(""))},zt=function(t,e){Xt(t,1);for(var r=arguments.length,n=new Array(r>2?r-2:0),a=2;a<r;a++)n[a-2]=arguments[a];return nt(t,e,n),E(t,2),N(t)},Yt=function(t,e,r,n){return e?(Y(t,1),1):(tt(t),n?(a=n.message,u=-n.errno):(a="Success",u=0),r?q(t,yt("%s: %s"),r,yt(a)):et(t,yt(a)),W(t,u),3);var a,u},Jt=function(t,e){return R(t,c,e)},Zt=function(t,e,r){var n=kt(t,e);return null!==n&&S(t,e)?(Jt(t,r),at(t,-1,-2)||(n=null),z(t,2),n):null},qt=function(t,e,r){Ht(t,e,Et(t,r))},Wt=function(t,e){return Et(t,Ot(t,e))},Qt=function(t,e){var r=At(t,e);return null!==r&&void 0!==r||qt(t,e,d),r},$t=Qt,te=function(t,e,r){return Ot(t,e)<=0?null===r?null:Nt(r):Qt(t,e)},ee=te,re=function(t,e){var r=Tt(t,e);return!1===r&&qt(t,e,L),r},ne=function(t,e){var r=Lt(t,e);return!1===r&&function(t,e){D(t,e)?jt(t,e,yt("number has no integer representation",!0)):qt(t,e,L)}(t,e),r},ae=function(t,e){var r=t.n+e;if(t.b.length<r){var n=Math.max(2*t.b.length,r),a=new Uint8Array(n);a.set(t.b),t.b=a}return t.b.subarray(t.n,r)},ue=function(t,e){e.L=t,e.b=Vt},se=function(t,e,r){r>0&&(e=Nt(e),ae(t,r).set(e.subarray(0,r)),ie(t,r))},oe=function(t,e){e=Nt(e),se(t,e,e.length)},le=function(t){$(t.L,t.b,t.n),t.n=0,t.b=Vt},ie=function(t,e){t.n+=e},ce=function(t,e,r,n){return Ot(t,r)<=0?n:e(t,r)},fe=function(t,e){var r=e.string;return e.string=null,r},_e=function(t,e,r,n,a){return K(t,fe,{string:e},n,a)},pe=function(t,e,r,n){return _e(t,e,0,n,null)},ve=function(t,e){return pe(t,e,e.length,e)},he=function(t,e,r){if(S(t,e)){et(t,r);var n=ut(t,-2);return n===v?z(t,2):it(t,-2),n}return v},Le=function(t,e,r){return e=x(t,e),he(t,e,r)!==v&&(rt(t,e),k(t,1,1),!0)},de=yt("%I"),Ae=yt("%f"),ge=function(t,e,r){var n=r>>>0,a=e.length,u=t.length+1-a;t:for(;n<u;n++){for(var s=0;s<a;s++)if(t[n+s]!==e[s])continue t;return n}return-1},Te=function(t,e,r){return R(t,e,r)===A||(z(t,1),e=x(t,e),j(t),rt(t,-1),ct(t,e,r),!1)},xe=function(t,e,r){for(var n in be(t,r,yt("too many upvalues",!0)),e){for(var a=0;a<r;a++)rt(t,-r);J(t,e[n],r),ct(t,-(r+2),yt(n))}z(t,r)},be=function(t,e,r){O(t,e)||(r?zt(t,yt("stack overflow (%s)"),r):zt(t,yt("stack overflow",!0)))},ke=function(t,e,r,n){var a=n.message,u=bt(t,r).subarray(1);return q(t,yt("cannot %s %s: %s"),yt(e),u,yt(a)),it(t,r),wt},Oe=[239,187,191],Ee=function(t){var e=function(t){var e;t.n=0;var r=0;do{if(null===(e=a(t))||e!==Oe[r])return e;r++,t.buff[t.n++]=e}while(r<Oe.length);return t.n=0,a(t)}(t);if(35===e){do{e=a(t)}while(e&&10!==e);return{skipped:!0,c:a(t)}}return{skipped:!1,c:e}},me=function(t,e){var r=e;if(null!==r.f&&r.n>0){var n=r.n;return r.n=0,r.f=r.f.subarray(r.pos),r.buff.subarray(0,n)}var a=r.f;return r.f=null,a};a=function(t){return t.pos<t.f.length?t.f[t.pos++]:null},u=function(t,e,r){var a=new function t(){n(this,t),this.n=NaN,this.f=null,this.buff=new Uint8Array(1024),this.pos=0,this.err=void 0},u=I(t)+1;if(null===e)throw new Error("Can't read stdin in the browser");q(t,yt("@%s"),e);var s=St(e),o=new XMLHttpRequest;if(o.open("GET",s,!1),"undefined"==typeof window&&(o.responseType="arraybuffer"),o.send(),!(o.status>=200&&o.status<=299))return a.err=o.status,ke(t,"open",u,{message:"".concat(o.status,": ").concat(o.statusText)});"string"==typeof o.response?a.f=yt(o.response):a.f=new Uint8Array(o.response);var l=Ee(a);l.c===f[0]&&e||l.skipped&&(a.buff[a.n++]=10),null!==l.c&&(a.buff[a.n++]=l.c);var i=K(t,me,a,bt(t,-1),r),c=a.err;return c?(pt(t,u),ke(t,"read",u,c)):(it(t,u),i)};var Ue=function(t,e){return u(t,e,null)},Ne=function(t,e,r){var n=mt(t);72!=r&&zt(t,yt("core and library have incompatible numeric types")),n!=mt(null)?zt(t,yt("multiple Lua VMs detected")):n!==e&&zt(t,yt("version mismatch: app. needs %f, Lua core provides %f"),e,n)};t.exports.LUA_ERRFILE=wt,t.exports.LUA_FILEHANDLE=Pt,t.exports.LUA_LOADED_TABLE=It,t.exports.LUA_NOREF=-2,t.exports.LUA_PRELOAD_TABLE=Mt,t.exports.LUA_REFNIL=-1,t.exports.luaL_Buffer=Bt,t.exports.luaL_addchar=function(t,e){ae(t,1),t.b[t.n++]=e},t.exports.luaL_addlstring=se,t.exports.luaL_addsize=ie,t.exports.luaL_addstring=oe,t.exports.luaL_addvalue=function(t){var e=t.L,r=bt(e,-1);se(t,r,r.length),z(e,1)},t.exports.luaL_argcheck=function(t,e,r,n){e||jt(t,r,n)},t.exports.luaL_argerror=jt,t.exports.luaL_buffinit=ue,t.exports.luaL_buffinitsize=function(t,e,r){return ue(t,e),ae(e,r)},t.exports.luaL_callmeta=Le,t.exports.luaL_checkany=function(t,e){Ot(t,e)===h&&jt(t,e,yt("value expected",!0))},t.exports.luaL_checkinteger=ne,t.exports.luaL_checklstring=Qt,t.exports.luaL_checknumber=re,t.exports.luaL_checkoption=function(t,e,r,n){for(var a=null!==r?ee(t,e,r):$t(t,e),u=0;n[u];u++)if(Rt(n[u],a))return u;return jt(t,e,q(t,yt("invalid option '%s'"),a))},t.exports.luaL_checkstack=be,t.exports.luaL_checkstring=$t,t.exports.luaL_checktype=function(t,e,r){Ot(t,e)!==r&&qt(t,e,r)},t.exports.luaL_checkudata=function(t,e,r){var n=Zt(t,e,r);return null===n&&Ht(t,e,r),n},t.exports.luaL_checkversion=function(t){Ne(t,g,72)},t.exports.luaL_checkversion_=Ne,t.exports.luaL_dofile=function(t,e){return Ue(t,e)||X(t,0,i,0)},t.exports.luaL_dostring=function(t,e){return ve(t,e)||X(t,0,i,0)},t.exports.luaL_error=zt,t.exports.luaL_execresult=function(t,e){var r,n;if(null===e)return Y(t,1),Q(t,"exit"),W(t,0),3;if(e.status)r="exit",n=e.status;else{if(!e.signal)return Yt(t,0,null,e);r="signal",n=e.signal}return tt(t),Q(t,r),W(t,n),3},t.exports.luaL_fileresult=Yt,t.exports.luaL_getmetafield=he,t.exports.luaL_getmetatable=Jt,t.exports.luaL_getsubtable=Te,t.exports.luaL_gsub=function(t,e,r,n){var a,u=new Bt;for(ue(t,u);(a=ge(e,r))>=0;)se(u,e,a),oe(u,n),e=e.subarray(a+r.length);return oe(u,e),le(u),bt(t,-1)},t.exports.luaL_len=function(t,e){G(t,e);var r=Lt(t,-1);return!1===r&&zt(t,yt("object length is not an integer",!0)),z(t,1),r},t.exports.luaL_loadbuffer=pe,t.exports.luaL_loadbufferx=_e,t.exports.luaL_loadfile=Ue,t.exports.luaL_loadfilex=u,t.exports.luaL_loadstring=ve,t.exports.luaL_newlib=function(t,e){U(t),xe(t,e,0)},t.exports.luaL_newlibtable=function(t){U(t)},t.exports.luaL_newmetatable=function(t,e){return Jt(t,e)!==v?0:(z(t,1),U(t,0,2),et(t,e),ct(t,-2,Ct),rt(t,-1),ct(t,c,e),1)},t.exports.luaL_newstate=function(){var t=F();return t&&b(t,Ft),t},t.exports.luaL_opt=ce,t.exports.luaL_optinteger=function(t,e,r){return ce(t,ne,e,r)},t.exports.luaL_optlstring=te,t.exports.luaL_optnumber=function(t,e,r){return ce(t,re,e,r)},t.exports.luaL_optstring=ee,t.exports.luaL_prepbuffer=function(t){return ae(t,s)},t.exports.luaL_prepbuffsize=ae,t.exports.luaL_pushresult=le,t.exports.luaL_pushresultsize=function(t,e){ie(t,e),le(t)},t.exports.luaL_ref=function(t,e){var r;return C(t,-1)?(z(t,1),-1):(e=x(t,e),st(t,e,0),r=ht(t,-1),z(t,1),0!==r?(st(t,e,r),lt(t,e,0)):r=ot(t,e)+1,lt(t,e,r),r)},t.exports.luaL_requiref=function(t,e,r,n){Te(t,c,It),R(t,-1,e),vt(t,-1)||(z(t,1),Z(t,r),et(t,e),k(t,1,1),rt(t,-1),ct(t,-3,e)),it(t,-2),n&&(rt(t,-1),ft(t,e))},t.exports.luaL_setfuncs=xe,t.exports.luaL_setmetatable=function(t,e){Jt(t,e),_t(t,-2)},t.exports.luaL_testudata=Zt,t.exports.luaL_tolstring=function(t,e){if(Le(t,e,Dt))V(t,-1)||zt(t,yt("'__tostring' must return a string"));else switch(Ot(t,e)){case L:P(t,e)?q(t,de,ht(t,e)):q(t,Ae,gt(t,e));break;case d:rt(t,e);break;case _:Q(t,vt(t,e)?"true":"false");break;case v:Q(t,"nil");break;default:var r=he(t,e,Ct),n=r===d?bt(t,-1):Wt(t,e);q(t,yt("%s: %p"),n,xt(t,e)),r!==v&&it(t,-2)}return At(t,-1)},t.exports.luaL_traceback=function(t,e,r,n){var a=new T,u=I(t),s=function(t){for(var e=new T,r=1,n=1;w(t,n,e);)r=n,n*=2;for(;r<n;){var a=Math.floor((r+n)/2);w(t,a,e)?r=a+1:n=a}return n-1}(e),o=s-n>21?10:-1;for(r&&q(t,yt("%s\n"),r),be(t,10,null),Q(t,"stack traceback:");w(e,n++,a);)0==o--?(Q(t,"\n\t..."),n=s-11+1):(y(e,yt("Slnt",!0),a),q(t,yt("\n\t%s:"),a.short_src),a.currentline>0&&Q(t,"".concat(a.currentline,":")),Q(t," in "),Kt(t,a),a.istailcall&&Q(t,"\n\t(...tail calls..)"),E(t,I(t)-u));E(t,I(t)-u)},t.exports.luaL_typename=Wt,t.exports.luaL_unref=function(t,e,r){r>=0&&(e=x(t,e),st(t,e,0),lt(t,e,r),W(t,r),lt(t,e,0))},t.exports.luaL_where=Xt,t.exports.lua_writestringerror=function(){for(var t=0;t<arguments.length;t++){var e=arguments[t];do{var r=/([^\n]*)\n?([\d\D]*)/.exec(e);console.error(r[1]),e=r[2]}while(""!==e)}}},function(t,e,r){"use strict";var n=r(1),a=n.LUA_HOOKCALL,u=n.LUA_HOOKRET,s=n.LUA_HOOKTAILCALL,o=n.LUA_MASKCALL,l=n.LUA_MASKLINE,i=n.LUA_MASKRET,c=n.LUA_MINSTACK,f=n.LUA_MULTRET,_=n.LUA_SIGNATURE,p=n.constant_types,v=p.LUA_TCCL,h=p.LUA_TLCF,L=p.LUA_TLCL,d=p.LUA_TNIL,A=n.thread_status,g=A.LUA_ERRMEM,T=A.LUA_ERRERR,x=A.LUA_ERRRUN,b=A.LUA_ERRSYNTAX,k=A.LUA_OK,O=A.LUA_YIELD,E=n.lua_Debug,m=n.luastring_indexOf,U=n.to_luastring,N=r(19),R=r(11),y=r(13),S=r(4),w=S.api_check,I=S.lua_assert,M=S.LUAI_MAXCCALLS,P=r(6),C=r(16),D=r(23),V=r(12),B=r(10).luaS_newliteral,G=r(14),K=r(3).LUAI_MAXSTACK,F=r(36),j=r(15),H=r(20).MBuffer,X=function(t,e){if(t.top<e)for(;t.top<e;)t.stack[t.top++]=new P.TValue(d,null);else for(;t.top>e;)delete t.stack[--t.top]},z=function(t,e,r){for(var n=t.top;t.top<r+1;)t.stack[t.top++]=new P.TValue(d,null);switch(e){case g:P.setsvalue2s(t,r,B(t,"not enough memory"));break;case T:P.setsvalue2s(t,r,B(t,"error in error handling"));break;default:P.setobjs2s(t,r,n-1)}for(;t.top>r+1;)delete t.stack[--t.top]},Y=K+200,J=function(t,e){I(e<=K||e==Y),I(t.stack_last==t.stack.length-V.EXTRA_STACK),t.stack.length=e,t.stack_last=e-V.EXTRA_STACK},Z=function(t,e){var r=t.stack.length;if(r>K)st(t,T);else{var n=t.top+e+V.EXTRA_STACK,a=2*r;a>K&&(a=K),a<n&&(a=n),a>K?(J(t,Y),R.luaG_runerror(t,U("stack overflow",!0))):J(t,a)}},q=function(t,e){t.stack_last-t.top<=e&&Z(t,e)},W=function(t){var e=function(t){for(var e=t.top,r=t.ci;null!==r;r=r.previous)e<r.top&&(e=r.top);return I(e<=t.stack_last),e+1}(t),r=e+Math.floor(e/8)+2*V.EXTRA_STACK;r>K&&(r=K),t.stack.length>K&&V.luaE_freeCI(t),e<=K-V.EXTRA_STACK&&r<t.stack.length&&J(t,r)},Q=function t(e,r,n){var u=e.stack[r];switch(u.type){case v:case h:var s=u.type===v?u.value.f:u.value;q(e,c);var l=V.luaE_extendCI(e);l.funcOff=r,l.nresults=n,l.func=u,l.top=e.top+c,I(l.top<=e.stack_last),l.callstatus=0,e.hookmask&o&&et(e,a,-1);var i=s(e);if("number"!=typeof i||i<0||(0|i)!==i)throw Error("invalid return value from JS function (expected integer)");return N.api_checknelems(e,i),$(e,l,e.top-i,i),!0;case L:var f,_=u.value.p,p=e.top-r-1,A=_.maxstacksize;if(q(e,A),_.is_vararg)f=nt(e,_,p);else{for(;p<_.numparams;p++)e.stack[e.top++]=new P.TValue(d,null);f=r+1}var g=V.luaE_extendCI(e);return g.funcOff=r,g.nresults=n,g.func=u,g.l_base=f,g.top=f+A,X(e,g.top),g.l_code=_.code,g.l_savedpc=0,g.callstatus=V.CIST_LUA,e.hookmask&o&&rt(e,g),!1;default:return q(e,1),at(e,r,u),t(e,r,n)}},$=function(t,e,r,n){var a=e.nresults;t.hookmask&(i|l)&&(t.hookmask&i&&et(t,u,-1),t.oldpc=e.previous.l_savedpc);var s=e.funcOff;return t.ci=e.previous,t.ci.next=null,tt(t,r,s,n,a)},tt=function(t,e,r,n,a){switch(a){case 0:break;case 1:0===n?t.stack[r].setnilvalue():P.setobjs2s(t,r,e);break;case f:for(var u=0;u<n;u++)P.setobjs2s(t,r+u,e+u);for(var s=t.top;s>=r+n;s--)delete t.stack[s];return t.top=r+n,!1;default:var o;if(a<=n)for(o=0;o<a;o++)P.setobjs2s(t,r+o,e+o);else{for(o=0;o<n;o++)P.setobjs2s(t,r+o,e+o);for(;o<a;o++)r+o>=t.top?t.stack[r+o]=new P.TValue(d,null):t.stack[r+o].setnilvalue()}}for(var l=r+a,i=t.top;i>=l;i--)delete t.stack[i];return t.top=l,!0},et=function(t,e,r){var n=t.hook;if(n&&t.allowhook){var a=t.ci,u=t.top,s=a.top,o=new E;o.event=e,o.currentline=r,o.i_ci=a,q(t,c),a.top=t.top+c,I(a.top<=t.stack_last),t.allowhook=0,a.callstatus|=V.CIST_HOOKED,n(t,o),I(!t.allowhook),t.allowhook=1,a.top=s,X(t,u),a.callstatus&=~V.CIST_HOOKED}},rt=function(t,e){var r=a;e.l_savedpc++,e.previous.callstatus&V.CIST_LUA&&e.previous.l_code[e.previous.l_savedpc-1].opcode==C.OpCodesI.OP_TAILCALL&&(e.callstatus|=V.CIST_TAIL,r=s),et(t,r,-1),e.l_savedpc--},nt=function(t,e,r){var n,a=e.numparams,u=t.top-r,s=t.top;for(n=0;n<a&&n<r;n++)P.pushobj2s(t,t.stack[u+n]),t.stack[u+n].setnilvalue();for(;n<a;n++)t.stack[t.top++]=new P.TValue(d,null);return s},at=function(t,e,r){var n=G.luaT_gettmbyobj(t,r,G.TMS.TM_CALL);n.ttisfunction(n)||R.luaG_typeerror(t,r,U("call",!0)),P.pushobj2s(t,t.stack[t.top-1]);for(var a=t.top-2;a>e;a--)P.setobjs2s(t,a,a-1);P.setobj2s(t,e,n)},ut=function(t,e,r){++t.nCcalls>=M&&function(t){t.nCcalls===M?R.luaG_runerror(t,U("JS stack overflow",!0)):t.nCcalls>=M+(M>>3)&&st(t,T)}(t),Q(t,e,r)||j.luaV_execute(t),t.nCcalls--},st=function t(e,r){if(e.errorJmp)throw e.errorJmp.status=r,e.errorJmp;var n=e.l_G;if(e.status=r,!n.mainthread.errorJmp){var a=n.panic;throw a&&(z(e,r,e.top),e.ci.top<e.top&&(e.ci.top=e.top),a(e)),new Error("Aborted ".concat(r))}n.mainthread.stack[n.mainthread.top++]=e.stack[e.top-1],t(n.mainthread,r)},ot=function(t,e,r){var n=t.nCcalls,a={status:k,previous:t.errorJmp};t.errorJmp=a;try{e(t,r)}catch(e){if(a.status===k){var u=t.l_G.atnativeerror;if(u)try{if(a.status=k,N.lua_pushcfunction(t,u),N.lua_pushlightuserdata(t,e),ht(t,t.top-2,1),0!==t.errfunc){var s=t.errfunc;P.pushobj2s(t,t.stack[t.top-1]),P.setobjs2s(t,t.top-2,s),ht(t,t.top-2,1)}a.status=x}catch(t){a.status===k&&(a.status=-1)}else a.status=-1}}return t.errorJmp=a.previous,t.nCcalls=n,a.status},lt=function(t,e){var r=t.ci;I(null!==r.c_k&&0===t.nny),I(r.callstatus&V.CIST_YPCALL||e===O),r.callstatus&V.CIST_YPCALL&&(r.callstatus&=~V.CIST_YPCALL,t.errfunc=r.c_old_errfunc),r.nresults===f&&t.ci.top<t.top&&(t.ci.top=t.top);var n=(0,r.c_k)(t,e,r.c_ctx);N.api_checknelems(t,n),$(t,r,t.top-n,n)},it=function(t,e){for(null!==e&&lt(t,e);t.ci!==t.base_ci;)t.ci.callstatus&V.CIST_LUA?(j.luaV_finishOp(t),j.luaV_execute(t)):lt(t,O)},ct=function(t,e){var r=function(t){for(var e=t.ci;null!==e;e=e.previous)if(e.callstatus&V.CIST_YPCALL)return e;return null}(t);if(null===r)return 0;var n=r.extra;return y.luaF_close(t,n),z(t,e,n),t.ci=r,t.allowhook=r.callstatus&V.CIST_OAH,t.nny=0,W(t),t.errfunc=r.c_old_errfunc,1},ft=function(t,e,r){var n=B(t,e);if(0===r)P.pushsvalue2s(t,n),w(t,t.top<=t.ci.top,"stack overflow");else{for(var a=1;a<r;a++)delete t.stack[--t.top];P.setsvalue2s(t,t.top-1,n)}return x},_t=function(t,e){var r=t.top-e,n=t.ci;t.status===k?Q(t,r-1,f)||j.luaV_execute(t):(I(t.status===O),t.status=k,n.funcOff=n.extra,n.func=t.stack[n.funcOff],n.callstatus&V.CIST_LUA?j.luaV_execute(t):(null!==n.c_k&&(e=n.c_k(t,O,n.c_ctx),N.api_checknelems(t,e),r=t.top-e),$(t,n,r,e)),it(t,null))},pt=function(t,e,r,n){var a=t.ci;return N.api_checknelems(t,e),t.nny>0&&(t!==t.l_G.mainthread?R.luaG_runerror(t,U("attempt to yield across a JS-call boundary",!0)):R.luaG_runerror(t,U("attempt to yield from outside a coroutine",!0))),t.status=O,a.extra=a.funcOff,a.callstatus&V.CIST_LUA?w(t,null===n,"hooks cannot continue after yielding"):(a.c_k=n,null!==n&&(a.c_ctx=r),a.funcOff=t.top-e-1,a.func=t.stack[a.funcOff],st(t,O)),I(a.callstatus&V.CIST_HOOKED),0},vt=function(t,e,r,n,a){var u=t.ci,s=t.allowhook,o=t.nny,l=t.errfunc;t.errfunc=a;var i=ot(t,e,r);return i!==k&&(y.luaF_close(t,n),z(t,i,n),t.ci=u,t.allowhook=s,t.nny=o,W(t)),t.errfunc=l,i},ht=function(t,e,r){t.nny++,ut(t,e,r),t.nny--},Lt=function t(e,r,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.z=e,this.buff=new H,this.dyd=new D.Dyndata,this.mode=n,this.name=r},dt=function(t,e,r){e&&-1===m(e,r[0])&&(P.luaO_pushfstring(t,U("attempt to load a %s chunk (mode is '%s')"),r,e),st(t,b))},At=function(t,e){var r,n=e.z.zgetc();n===_[0]?(dt(t,e.mode,U("binary",!0)),r=F.luaU_undump(t,e.z,e.name)):(dt(t,e.mode,U("text",!0)),r=D.luaY_parser(t,e.z,e.buff,e.dyd,e.name,n)),I(r.nupvalues===r.p.upvalues.length),y.luaF_initupvals(t,r)};t.exports.adjust_top=X,t.exports.luaD_call=ut,t.exports.luaD_callnoyield=ht,t.exports.luaD_checkstack=q,t.exports.luaD_growstack=Z,t.exports.luaD_hook=et,t.exports.luaD_inctop=function(t){q(t,1),t.stack[t.top++]=new P.TValue(d,null)},t.exports.luaD_pcall=vt,t.exports.luaD_poscall=$,t.exports.luaD_precall=Q,t.exports.luaD_protectedparser=function(t,e,r,n){var a=new Lt(e,r,n);t.nny++;var u=vt(t,At,a,t.top,t.errfunc);return t.nny--,u},t.exports.luaD_rawrunprotected=ot,t.exports.luaD_reallocstack=J,t.exports.luaD_throw=st,t.exports.lua_isyieldable=function(t){return 0===t.nny},t.exports.lua_resume=function(t,e,r){var n=t.nny;if(t.status===k){if(t.ci!==t.base_ci)return ft(t,"cannot resume non-suspended coroutine",r)}else if(t.status!==O)return ft(t,"cannot resume dead coroutine",r);if(t.nCcalls=e?e.nCcalls+1:1,t.nCcalls>=M)return ft(t,"JS stack overflow",r);t.nny=0,N.api_checknelems(t,t.status===k?r+1:r);var a=ot(t,_t,r);if(-1===a)a=x;else{for(;a>O&&ct(t,a);)a=ot(t,it,a);a>O?(t.status=a,z(t,a,t.top),t.ci.top=t.top):I(a===t.status)}return t.nny=n,t.nCcalls--,I(t.nCcalls===(e?e.nCcalls:0)),a},t.exports.lua_yield=function(t,e){pt(t,e,0,null)},t.exports.lua_yieldk=pt},function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var a=r(1),u=a.constant_types,s=u.LUA_TBOOLEAN,o=u.LUA_TCCL,l=u.LUA_TLCF,i=u.LUA_TLCL,c=u.LUA_TLIGHTUSERDATA,f=u.LUA_TLNGSTR,_=u.LUA_TNIL,p=u.LUA_TNUMFLT,v=u.LUA_TNUMINT,h=u.LUA_TSHRSTR,L=u.LUA_TTABLE,d=u.LUA_TTHREAD,A=u.LUA_TUSERDATA,g=a.to_luastring,T=r(4).lua_assert,x=r(11),b=r(6),k=r(10),O=k.luaS_hashlongstr,E=k.TString,m=r(12),U=new WeakMap,N=function(t){var e=U.get(t);return e||(e={},U.set(t,e)),e},R=function(t,e){switch(e.type){case _:return x.luaG_runerror(t,g("table index is nil",!0));case p:if(isNaN(e.value))return x.luaG_runerror(t,g("table index is NaN",!0));case v:case s:case L:case i:case l:case o:case A:case d:return e.value;case h:case f:return O(e.tsvalue());case c:var r=e.value;switch(n(r)){case"string":return"*"+r;case"number":return"#"+r;case"boolean":return r?"?true":"?false";case"function":return N(r);case"object":if(r instanceof m.lua_State&&r.l_G===t.l_G||r instanceof y||r instanceof b.Udata||r instanceof b.LClosure||r instanceof b.CClosure)return N(r);default:return r}default:throw new Error("unknown key type: "+e.type)}},y=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.id=e.l_G.id_counter++,this.strong=new Map,this.dead_strong=new Map,this.dead_weak=void 0,this.f=void 0,this.l=void 0,this.metatable=null,this.flags=-1},S=function(t,e,r,n){t.dead_strong.clear(),t.dead_weak=void 0;var a=null,u={key:r,value:n,p:a=t.l,n:void 0};t.f||(t.f=u),a&&(a.n=u),t.strong.set(e,u),t.l=u},w=function(t,e){var r=t.strong.get(e);if(r){r.key.setdeadvalue(),r.value=void 0;var a=r.n,u=r.p;r.p=void 0,u&&(u.n=a),a&&(a.p=u),t.f===r&&(t.f=a),t.l===r&&(t.l=u),t.strong.delete(e),!function(t){return"object"===n(t)?null!==t:"function"==typeof t}(e)?t.dead_strong.set(e,r):(t.dead_weak||(t.dead_weak=new WeakMap),t.dead_weak.set(e,r))}},I=function(t,e){var r=t.strong.get(e);return r?r.value:b.luaO_nilobject},M=function(t,e){return T("number"==typeof e&&(0|e)===e),I(t,e)};t.exports.invalidateTMcache=function(t){t.flags=0},t.exports.luaH_get=function(t,e,r){return T(r instanceof b.TValue),r.ttisnil()||r.ttisfloat()&&isNaN(r.value)?b.luaO_nilobject:I(e,R(t,r))},t.exports.luaH_getint=M,t.exports.luaH_getn=function(t){for(var e=0,r=t.strong.size+1;r-e>1;){var n=Math.floor((e+r)/2);M(t,n).ttisnil()?r=n:e=n}return e},t.exports.luaH_getstr=function(t,e){return T(e instanceof E),I(t,O(e))},t.exports.luaH_setfrom=function(t,e,r,n){T(r instanceof b.TValue);var a=R(t,r);if(n.ttisnil())w(e,a);else{var u=e.strong.get(a);if(u)u.value.setfrom(n);else{var s,o=r.value;s=r.ttisfloat()&&(0|o)===o?new b.TValue(v,o):new b.TValue(r.type,o);var l=new b.TValue(n.type,n.value);S(e,a,s,l)}}},t.exports.luaH_setint=function(t,e,r){T("number"==typeof e&&(0|e)===e&&r instanceof b.TValue);var n=e;if(r.ttisnil())w(t,n);else{var a=t.strong.get(n);if(a)a.value.setfrom(r);else{var u=new b.TValue(v,e),s=new b.TValue(r.type,r.value);S(t,n,u,s)}}},t.exports.luaH_new=function(t){return new y(t)},t.exports.luaH_next=function(t,e,r){var n,a=t.stack[r];if(a.type===_){if(!(n=e.f))return!1}else{var u=R(t,a);if(n=e.strong.get(u)){if(!(n=n.n))return!1}else{if(!(n=e.dead_weak&&e.dead_weak.get(u)||e.dead_strong.get(u)))return x.luaG_runerror(t,g("invalid key to 'next'"));do{if(!(n=n.n))return!1}while(n.key.ttisdeadkey())}}return b.setobj2s(t,r,n.key),b.setobj2s(t,r+1,n.value),!0},t.exports.Table=y},function(t,e,r){"use strict";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var a=r(1),u=a.is_luastring,s=a.luastring_eq,o=a.luastring_from,l=a.to_luastring,i=r(4).lua_assert,c=function(){function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.hash=null,this.realstring=r}return function(t,e,r){e&&n(t.prototype,e),r&&n(t,r)}(t,[{key:"getstr",value:function(){return this.realstring}},{key:"tsslen",value:function(){return this.realstring.length}}]),t}(),f=function(t){i(u(t));for(var e=t.length,r="|",n=0;n<e;n++)r+=t[n].toString(16);return r},_=function(t,e){return i(e instanceof Uint8Array),new c(t,e)};t.exports.luaS_eqlngstr=function(t,e){return i(t instanceof c),i(e instanceof c),t==e||s(t.realstring,e.realstring)},t.exports.luaS_hash=f,t.exports.luaS_hashlongstr=function(t){return i(t instanceof c),null===t.hash&&(t.hash=f(t.getstr())),t.hash},t.exports.luaS_bless=_,t.exports.luaS_new=function(t,e){return _(t,o(e))},t.exports.luaS_newliteral=function(t,e){return _(t,l(e))},t.exports.TString=c},function(t,e,r){"use strict";var n=r(1),a=n.LUA_HOOKCOUNT,u=n.LUA_HOOKLINE,s=n.LUA_MASKCOUNT,o=n.LUA_MASKLINE,l=n.constant_types,i=l.LUA_TBOOLEAN,c=l.LUA_TNIL,f=l.LUA_TTABLE,_=n.thread_status,p=_.LUA_ERRRUN,v=_.LUA_YIELD,h=n.from_userstring,L=n.luastring_eq,d=n.luastring_indexOf,A=n.to_luastring,g=r(4),T=g.api_check,x=g.lua_assert,b=r(3).LUA_IDSIZE,k=r(19),O=r(8),E=r(13),m=r(21),U=r(6),N=r(16),R=r(12),y=r(9),S=r(14),w=r(15),I=function(t){return x(t.callstatus&R.CIST_LUA),t.l_savedpc-1},M=function(t){return 0!==t.func.value.p.lineinfo.length?t.func.value.p.lineinfo[I(t)]:-1},P=function(t){if(t.status===v){var e=t.ci,r=e.funcOff;e.func=t.stack[e.extra],e.funcOff=e.extra,e.extra=r}},C=function(t,e){x(e<t.upvalues.length);var r=t.upvalues[e].name;return null===r?A("?",!0):r.getstr()},D=function(t,e,r){var n,a=null;if(e.callstatus&R.CIST_LUA){if(r<0)return function(t,e){var r=t.func.value.p.numparams;return e>=t.l_base-t.funcOff-r?null:{pos:t.funcOff+r+e,name:A("(*vararg)",!0)}}(e,-r);n=e.l_base,a=E.luaF_getlocalname(e.func.value.p,r,I(e))}else n=e.funcOff+1;if(null===a){if(!((e===t.ci?t.top:e.next.funcOff)-n>=r&&r>0))return null;a=A("(*temporary)",!0)}return{pos:n+(r-1),name:a}},V=function(t,e){if(null===e||e instanceof U.CClosure)t.source=A("=[JS]",!0),t.linedefined=-1,t.lastlinedefined=-1,t.what=A("J",!0);else{var r=e.p;t.source=r.source?r.source.getstr():A("=?",!0),t.linedefined=r.linedefined,t.lastlinedefined=r.lastlinedefined,t.what=0===t.linedefined?A("main",!0):A("Lua",!0)}t.short_src=U.luaO_chunkid(t.source,b)},B=function(t,e){var r={name:null,funcname:null};return null===e?null:e.callstatus&R.CIST_FIN?(r.name=A("__gc",!0),r.funcname=A("metamethod",!0),r):!(e.callstatus&R.CIST_TAIL)&&e.previous.callstatus&R.CIST_LUA?j(t,e.previous):null},G=function(t,e,r){var n={name:null,funcname:null};if(N.ISK(r)){var a=t.k[N.INDEXK(r)];if(a.ttisstring())return n.name=a.svalue(),n}else{var u=F(t,e,r);if(u&&99===u.funcname[0])return u}return n.name=A("?",!0),n},K=function(t,e){return t<e?-1:t},F=function t(e,r,n){var a={name:E.luaF_getlocalname(e,n+1,r),funcname:null};if(a.name)return a.funcname=A("local",!0),a;var u=function(t,e,r){for(var n=-1,a=0,u=N.OpCodesI,s=0;s<e;s++){var o=t.code[s],l=o.A;switch(o.opcode){case u.OP_LOADNIL:var i=o.B;l<=r&&r<=l+i&&(n=K(s,a));break;case u.OP_TFORCALL:r>=l+2&&(n=K(s,a));break;case u.OP_CALL:case u.OP_TAILCALL:r>=l&&(n=K(s,a));break;case u.OP_JMP:var c=s+1+o.sBx;s<c&&c<=e&&c>a&&(a=c);break;default:N.testAMode(o.opcode)&&r===l&&(n=K(s,a))}}return n}(e,r,n),s=N.OpCodesI;if(-1!==u){var o=e.code[u];switch(o.opcode){case s.OP_MOVE:var l=o.B;if(l<o.A)return t(e,u,l);break;case s.OP_GETTABUP:case s.OP_GETTABLE:var i=o.C,c=o.B,f=o.opcode===s.OP_GETTABLE?E.luaF_getlocalname(e,c+1,u):C(e,c);return a.name=G(e,u,i).name,a.funcname=f&&L(f,m.LUA_ENV)?A("global",!0):A("field",!0),a;case s.OP_GETUPVAL:return a.name=C(e,o.B),a.funcname=A("upvalue",!0),a;case s.OP_LOADK:case s.OP_LOADKX:var _=o.opcode===s.OP_LOADK?o.Bx:e.code[u+1].Ax;if(e.k[_].ttisstring())return a.name=e.k[_].svalue(),a.funcname=A("constant",!0),a;break;case s.OP_SELF:var p=o.C;return a.name=G(e,u,p).name,a.funcname=A("method",!0),a}}return null},j=function(t,e){var r={name:null,funcname:null},n=0,a=e.func.value.p,u=I(e),s=a.code[u],o=N.OpCodesI;if(e.callstatus&R.CIST_HOOKED)return r.name=A("?",!0),r.funcname=A("hook",!0),r;switch(s.opcode){case o.OP_CALL:case o.OP_TAILCALL:return F(a,u,s.A);case o.OP_TFORCALL:return r.name=A("for iterator",!0),r.funcname=A("for iterator",!0),r;case o.OP_SELF:case o.OP_GETTABUP:case o.OP_GETTABLE:n=S.TMS.TM_INDEX;break;case o.OP_SETTABUP:case o.OP_SETTABLE:n=S.TMS.TM_NEWINDEX;break;case o.OP_ADD:n=S.TMS.TM_ADD;break;case o.OP_SUB:n=S.TMS.TM_SUB;break;case o.OP_MUL:n=S.TMS.TM_MUL;break;case o.OP_MOD:n=S.TMS.TM_MOD;break;case o.OP_POW:n=S.TMS.TM_POW;break;case o.OP_DIV:n=S.TMS.TM_DIV;break;case o.OP_IDIV:n=S.TMS.TM_IDIV;break;case o.OP_BAND:n=S.TMS.TM_BAND;break;case o.OP_BOR:n=S.TMS.TM_BOR;break;case o.OP_BXOR:n=S.TMS.TM_BXOR;break;case o.OP_SHL:n=S.TMS.TM_SHL;break;case o.OP_SHR:n=S.TMS.TM_SHR;break;case o.OP_UNM:n=S.TMS.TM_UNM;break;case o.OP_BNOT:n=S.TMS.TM_BNOT;break;case o.OP_LEN:n=S.TMS.TM_LEN;break;case o.OP_CONCAT:n=S.TMS.TM_CONCAT;break;case o.OP_EQ:n=S.TMS.TM_EQ;break;case o.OP_LT:n=S.TMS.TM_LT;break;case o.OP_LE:n=S.TMS.TM_LE;break;default:return null}return r.name=t.l_G.tmname[n].getstr(),r.funcname=A("metamethod",!0),r},H=function(t,e){var r=t.ci,n=null;if(r.callstatus&R.CIST_LUA){n=function(t,e,r){for(var n=e.func.value,a=0;a<n.nupvalues;a++)if(n.upvals[a]===r)return{name:C(n.p,a),funcname:A("upvalue",!0)};return null}(0,r,e);var a=function(t,e,r){for(var n=e.l_base;n<e.top;n++)if(t.stack[n]===r)return n;return!1}(t,r,e);!n&&a&&(n=F(r.func.value.p,I(r),a-r.l_base))}return n?U.luaO_pushfstring(t,A(" (%s '%s')",!0),n.funcname,n.name):A("",!0)},X=function(t,e,r){var n=S.luaT_objtypename(t,e);Y(t,A("attempt to %s a %s value%s",!0),r,n,H(t,e))},z=function(t,e,r,n){var a;return a=r?U.luaO_chunkid(r.getstr(),b):A("?",!0),U.luaO_pushfstring(t,A("%s:%d: %s",!0),a,n,e)},Y=function(t,e){for(var r=t.ci,n=arguments.length,a=new Array(n>2?n-2:0),u=2;u<n;u++)a[u-2]=arguments[u];var s=U.luaO_pushvfstring(t,e,a);r.callstatus&R.CIST_LUA&&z(t,s,r.func.value.p.source,M(r)),J(t)},J=function(t){if(0!==t.errfunc){var e=t.errfunc;U.pushobj2s(t,t.stack[t.top-1]),U.setobjs2s(t,t.top-2,e),O.luaD_callnoyield(t,t.top-2,1)}O.luaD_throw(t,p)};t.exports.luaG_addinfo=z,t.exports.luaG_concaterror=function(t,e,r){(e.ttisstring()||w.cvt2str(e))&&(e=r),X(t,e,A("concatenate",!0))},t.exports.luaG_errormsg=J,t.exports.luaG_opinterror=function(t,e,r,n){!1===w.tonumber(e)&&(r=e),X(t,r,n)},t.exports.luaG_ordererror=function(t,e,r){var n=S.luaT_objtypename(t,e),a=S.luaT_objtypename(t,r);L(n,a)?Y(t,A("attempt to compare two %s values",!0),n):Y(t,A("attempt to compare %s with %s",!0),n,a)},t.exports.luaG_runerror=Y,t.exports.luaG_tointerror=function(t,e,r){!1===w.tointeger(e)&&(r=e),Y(t,A("number%s has no integer representation",!0),H(t,r))},t.exports.luaG_traceexec=function(t){var e=t.ci,r=t.hookmask,n=0==--t.hookcount&&r&s;if(n)t.hookcount=t.basehookcount;else if(!(r&o))return;if(e.callstatus&R.CIST_HOOKYIELD)e.callstatus&=~R.CIST_HOOKYIELD;else{if(n&&O.luaD_hook(t,a,-1),r&o){var l=e.func.value.p,i=e.l_savedpc-1,c=0!==l.lineinfo.length?l.lineinfo[i]:-1;(0===i||e.l_savedpc<=t.oldpc||c!==(0!==l.lineinfo.length?l.lineinfo[t.oldpc-1]:-1))&&O.luaD_hook(t,u,c)}t.oldpc=e.l_savedpc,t.status===v&&(n&&(t.hookcount=1),e.l_savedpc--,e.callstatus|=R.CIST_HOOKYIELD,e.funcOff=t.top-1,e.func=t.stack[e.funcOff],O.luaD_throw(t,v))}},t.exports.luaG_typeerror=X,t.exports.lua_gethook=function(t){return t.hook},t.exports.lua_gethookcount=function(t){return t.basehookcount},t.exports.lua_gethookmask=function(t){return t.hookmask},t.exports.lua_getinfo=function(t,e,r){var n,a,u,s;return e=h(e),P(t),62===e[0]?(u=null,s=t.stack[t.top-1],T(t,s.ttisfunction(),"function expected"),e=e.subarray(1),t.top--):(s=(u=r.i_ci).func,x(u.func.ttisfunction())),n=function(t,e,r,n,a){for(var u=1;e.length>0;e=e.subarray(1))switch(e[0]){case 83:V(r,n);break;case 108:r.currentline=a&&a.callstatus&R.CIST_LUA?M(a):-1;break;case 117:r.nups=null===n?0:n.nupvalues,null===n||n instanceof U.CClosure?(r.isvararg=!0,r.nparams=0):(r.isvararg=n.p.is_vararg,r.nparams=n.p.numparams);break;case 116:r.istailcall=a?a.callstatus&R.CIST_TAIL:0;break;case 110:var s=B(t,a);null===s?(r.namewhat=A("",!0),r.name=null):(r.namewhat=s.funcname,r.name=s.name);break;case 76:case 102:break;default:u=0}return u}(t,e,r,a=s.ttisclosure()?s.value:null,u),d(e,102)>=0&&(U.pushobj2s(t,s),T(t,t.top<=t.ci.top,"stack overflow")),P(t),d(e,76)>=0&&function(t,e){if(null===e||e instanceof U.CClosure)t.stack[t.top]=new U.TValue(c,null),k.api_incr_top(t);else{var r=e.p.lineinfo,n=y.luaH_new(t);t.stack[t.top]=new U.TValue(f,n),k.api_incr_top(t);for(var a=new U.TValue(i,!0),u=0;u<r.length;u++)y.luaH_setint(n,r[u],a)}}(t,a),n},t.exports.lua_getlocal=function(t,e,r){var n;if(P(t),null===e)n=t.stack[t.top-1].ttisLclosure()?E.luaF_getlocalname(t.stack[t.top-1].value.p,r,0):null;else{var a=D(t,e.i_ci,r);a?(n=a.name,U.pushobj2s(t,t.stack[a.pos]),T(t,t.top<=t.ci.top,"stack overflow")):n=null}return P(t),n},t.exports.lua_getstack=function(t,e,r){var n,a;if(e<0)return 0;for(n=t.ci;e>0&&n!==t.base_ci;n=n.previous)e--;return 0===e&&n!==t.base_ci?(a=1,r.i_ci=n):a=0,a},t.exports.lua_sethook=function(t,e,r,n){null!==e&&0!==r||(r=0,e=null),t.ci.callstatus&R.CIST_LUA&&(t.oldpc=t.ci.l_savedpc),t.hook=e,t.basehookcount=n,t.hookcount=t.basehookcount,t.hookmask=r},t.exports.lua_setlocal=function(t,e,r){var n;P(t);var a=D(t,e.i_ci,r);return a?(n=a.name,U.setobjs2s(t,a.pos,t.top-1),delete t.stack[--t.top]):n=null,P(t),n}},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(1),u=a.LUA_MINSTACK,s=a.LUA_RIDX_GLOBALS,o=a.LUA_RIDX_MAINTHREAD,l=a.constant_types,i=l.LUA_NUMTAGS,c=l.LUA_TNIL,f=l.LUA_TTABLE,_=l.LUA_TTHREAD,p=a.thread_status.LUA_OK,v=r(6),h=r(8),L=r(19),d=r(9),A=r(14),g=2*u,T=function t(){n(this,t),this.func=null,this.funcOff=NaN,this.top=NaN,this.previous=null,this.next=null,this.l_base=NaN,this.l_code=null,this.l_savedpc=NaN,this.c_k=null,this.c_old_errfunc=null,this.c_ctx=null,this.nresults=NaN,this.callstatus=NaN},x=function t(e){n(this,t),this.id=e.id_counter++,this.base_ci=new T,this.top=NaN,this.stack_last=NaN,this.oldpc=NaN,this.l_G=e,this.stack=null,this.ci=null,this.errorJmp=null,this.nCcalls=0,this.hook=null,this.hookmask=0,this.basehookcount=0,this.allowhook=1,this.hookcount=this.basehookcount,this.nny=1,this.status=p,this.errfunc=0},b=function(t){t.ci.next=null},k=function(t,e){t.stack=new Array(g),t.top=0,t.stack_last=g-5;var r=t.base_ci;r.next=r.previous=null,r.callstatus=0,r.funcOff=t.top,r.func=t.stack[t.top],t.stack[t.top++]=new v.TValue(c,null),r.top=t.top+u,t.ci=r},O=function(t){t.ci=t.base_ci,b(t),t.stack=null},E=function(t){var e=t.l_G;k(t),function(t,e){var r=d.luaH_new(t);e.l_registry.sethvalue(r),d.luaH_setint(r,o,new v.TValue(_,t)),d.luaH_setint(r,s,new v.TValue(f,d.luaH_new(t)))}(t,e),A.luaT_init(t),e.version=L.lua_version(null)};t.exports.lua_State=x,t.exports.CallInfo=T,t.exports.CIST_OAH=1,t.exports.CIST_LUA=2,t.exports.CIST_HOOKED=4,t.exports.CIST_FRESH=8,t.exports.CIST_YPCALL=16,t.exports.CIST_TAIL=32,t.exports.CIST_HOOKYIELD=64,t.exports.CIST_LEQ=128,t.exports.CIST_FIN=256,t.exports.EXTRA_STACK=5,t.exports.lua_close=function(t){!function(t){O(t)}(t=t.l_G.mainthread)},t.exports.lua_newstate=function(){var t=new function t(){n(this,t),this.id_counter=1,this.ids=new WeakMap,this.mainthread=null,this.l_registry=new v.TValue(c,null),this.panic=null,this.atnativeerror=null,this.version=null,this.tmname=new Array(A.TMS.TM_N),this.mt=new Array(i)},e=new x(t);return t.mainthread=e,h.luaD_rawrunprotected(e,E,null)!==p&&(e=null),e},t.exports.lua_newthread=function(t){var e=t.l_G,r=new x(e);return t.stack[t.top]=new v.TValue(_,r),L.api_incr_top(t),r.hookmask=t.hookmask,r.basehookcount=t.basehookcount,r.hook=t.hook,r.hookcount=r.basehookcount,k(r),r},t.exports.luaE_extendCI=function(t){var e=new T;return t.ci.next=e,e.previous=t.ci,e.next=null,t.ci=e,e},t.exports.luaE_freeCI=b,t.exports.luaE_freethread=function(t,e){O(e)}},function(t,e,r){"use strict";var n=r(1).constant_types.LUA_TNIL,a=r(6);t.exports.MAXUPVAL=255,t.exports.Proto=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.id=e.l_G.id_counter++,this.k=[],this.p=[],this.code=[],this.cache=null,this.lineinfo=[],this.upvalues=[],this.numparams=0,this.is_vararg=!1,this.maxstacksize=0,this.locvars=[],this.linedefined=0,this.lastlinedefined=0,this.source=null},t.exports.luaF_findupval=function(t,e){return t.stack[e]},t.exports.luaF_close=function(t,e){for(var r=e;r<t.top;r++){var n=t.stack[r];t.stack[r]=new a.TValue(n.type,n.value)}},t.exports.luaF_getlocalname=function(t,e,r){for(var n=0;n<t.locvars.length&&t.locvars[n].startpc<=r;n++)if(r<t.locvars[n].endpc&&0==--e)return t.locvars[n].varname.getstr();return null},t.exports.luaF_initupvals=function(t,e){for(var r=0;r<e.nupvalues;r++)e.upvals[r]=new a.TValue(n,null)},t.exports.luaF_newLclosure=function(t,e){return new a.LClosure(t,e)}},function(t,e,r){"use strict";var n=r(1),a=n.constant_types,u=a.LUA_TTABLE,s=a.LUA_TUSERDATA,o=n.to_luastring,l=r(4).lua_assert,i=r(6),c=r(8),f=r(12),_=r(10),p=_.luaS_bless,v=_.luaS_new,h=r(9),L=r(11),d=r(15),A=["no value","nil","boolean","userdata","number","string","table","function","userdata","thread","proto"].map(function(t){return o(t)}),g=function(t){return A[t+1]},T={TM_INDEX:0,TM_NEWINDEX:1,TM_GC:2,TM_MODE:3,TM_LEN:4,TM_EQ:5,TM_ADD:6,TM_SUB:7,TM_MUL:8,TM_MOD:9,TM_POW:10,TM_DIV:11,TM_IDIV:12,TM_BAND:13,TM_BOR:14,TM_BXOR:15,TM_SHL:16,TM_SHR:17,TM_UNM:18,TM_BNOT:19,TM_LT:20,TM_LE:21,TM_CONCAT:22,TM_CALL:23,TM_N:24},x=o("__name",!0),b=function(t,e,r,n,a,u){var s=t.top;if(i.pushobj2s(t,e),i.pushobj2s(t,r),i.pushobj2s(t,n),u||i.pushobj2s(t,a),t.ci.callstatus&f.CIST_LUA?c.luaD_call(t,s,u):c.luaD_callnoyield(t,s,u),u){var o=t.stack[t.top-1];delete t.stack[--t.top],a.setfrom(o)}},k=function(t,e,r,n,a){var u=E(t,e,a);return u.ttisnil()&&(u=E(t,r,a)),!u.ttisnil()&&(b(t,u,e,r,n,1),!0)},O=function(t,e,r){var n=h.luaH_getstr(t,r);return l(e<=T.TM_EQ),n.ttisnil()?(t.flags|=1<<e,null):n},E=function(t,e,r){var n;switch(e.ttnov()){case u:case s:n=e.value.metatable;break;default:n=t.l_G.mt[e.ttnov()]}return n?h.luaH_getstr(n,t.l_G.tmname[r]):i.luaO_nilobject};t.exports.fasttm=function(t,e,r){return null===e?null:e.flags&1<<r?null:O(e,r,t.l_G.tmname[r])},t.exports.TMS=T,t.exports.luaT_callTM=b,t.exports.luaT_callbinTM=k,t.exports.luaT_trybinTM=function(t,e,r,n,a){if(!k(t,e,r,n,a))switch(a){case T.TM_CONCAT:return L.luaG_concaterror(t,e,r);case T.TM_BAND:case T.TM_BOR:case T.TM_BXOR:case T.TM_SHL:case T.TM_SHR:case T.TM_BNOT:var u=d.tonumber(e),s=d.tonumber(r);return!1!==u&&!1!==s?L.luaG_tointerror(t,e,r):L.luaG_opinterror(t,e,r,o("perform bitwise operation on",!0));default:return L.luaG_opinterror(t,e,r,o("perform arithmetic on",!0))}},t.exports.luaT_callorderTM=function(t,e,r,n){var a=new i.TValue;return k(t,e,r,a,n)?!a.l_isfalse():null},t.exports.luaT_gettm=O,t.exports.luaT_gettmbyobj=E,t.exports.luaT_init=function(t){t.l_G.tmname[T.TM_INDEX]=new v(t,o("__index",!0)),t.l_G.tmname[T.TM_NEWINDEX]=new v(t,o("__newindex",!0)),t.l_G.tmname[T.TM_GC]=new v(t,o("__gc",!0)),t.l_G.tmname[T.TM_MODE]=new v(t,o("__mode",!0)),t.l_G.tmname[T.TM_LEN]=new v(t,o("__len",!0)),t.l_G.tmname[T.TM_EQ]=new v(t,o("__eq",!0)),t.l_G.tmname[T.TM_ADD]=new v(t,o("__add",!0)),t.l_G.tmname[T.TM_SUB]=new v(t,o("__sub",!0)),t.l_G.tmname[T.TM_MUL]=new v(t,o("__mul",!0)),t.l_G.tmname[T.TM_MOD]=new v(t,o("__mod",!0)),t.l_G.tmname[T.TM_POW]=new v(t,o("__pow",!0)),t.l_G.tmname[T.TM_DIV]=new v(t,o("__div",!0)),t.l_G.tmname[T.TM_IDIV]=new v(t,o("__idiv",!0)),t.l_G.tmname[T.TM_BAND]=new v(t,o("__band",!0)),t.l_G.tmname[T.TM_BOR]=new v(t,o("__bor",!0)),t.l_G.tmname[T.TM_BXOR]=new v(t,o("__bxor",!0)),t.l_G.tmname[T.TM_SHL]=new v(t,o("__shl",!0)),t.l_G.tmname[T.TM_SHR]=new v(t,o("__shr",!0)),t.l_G.tmname[T.TM_UNM]=new v(t,o("__unm",!0)),t.l_G.tmname[T.TM_BNOT]=new v(t,o("__bnot",!0)),t.l_G.tmname[T.TM_LT]=new v(t,o("__lt",!0)),t.l_G.tmname[T.TM_LE]=new v(t,o("__le",!0)),t.l_G.tmname[T.TM_CONCAT]=new v(t,o("__concat",!0)),t.l_G.tmname[T.TM_CALL]=new v(t,o("__call",!0))},t.exports.luaT_objtypename=function(t,e){var r;if(e.ttistable()&&null!==(r=e.value.metatable)||e.ttisfulluserdata()&&null!==(r=e.value.metatable)){var n=h.luaH_getstr(r,p(t,x));if(n.ttisstring())return n.svalue()}return g(e.ttnov())},t.exports.ttypename=g},function(t,e,r){"use strict";var n=r(1),a=n.LUA_MASKLINE,u=n.LUA_MASKCOUNT,s=n.LUA_MULTRET,o=n.constant_types,l=o.LUA_TBOOLEAN,i=o.LUA_TLCF,c=o.LUA_TLIGHTUSERDATA,f=o.LUA_TLNGSTR,_=o.LUA_TNIL,p=o.LUA_TNUMBER,v=o.LUA_TNUMFLT,h=o.LUA_TNUMINT,L=o.LUA_TSHRSTR,d=o.LUA_TTABLE,A=o.LUA_TUSERDATA,g=n.to_luastring,T=r(16),x=T.INDEXK,b=T.ISK,k=T.LFIELDS_PER_FLUSH,O=T.OpCodesI,E=O.OP_ADD,m=O.OP_BAND,U=O.OP_BNOT,N=O.OP_BOR,R=O.OP_BXOR,y=O.OP_CALL,S=O.OP_CLOSURE,w=O.OP_CONCAT,I=O.OP_DIV,M=O.OP_EQ,P=O.OP_EXTRAARG,C=O.OP_FORLOOP,D=O.OP_FORPREP,V=O.OP_GETTABLE,B=O.OP_GETTABUP,G=O.OP_GETUPVAL,K=O.OP_IDIV,F=O.OP_JMP,j=O.OP_LE,H=O.OP_LEN,X=O.OP_LOADBOOL,z=O.OP_LOADK,Y=O.OP_LOADKX,J=O.OP_LOADNIL,Z=O.OP_LT,q=O.OP_MOD,W=O.OP_MOVE,Q=O.OP_MUL,$=O.OP_NEWTABLE,tt=O.OP_NOT,et=O.OP_POW,rt=O.OP_RETURN,nt=O.OP_SELF,at=O.OP_SETLIST,ut=O.OP_SETTABLE,st=O.OP_SETTABUP,ot=O.OP_SETUPVAL,lt=O.OP_SHL,it=O.OP_SHR,ct=O.OP_SUB,ft=O.OP_TAILCALL,_t=O.OP_TEST,pt=O.OP_TESTSET,vt=O.OP_TFORCALL,ht=O.OP_TFORLOOP,Lt=O.OP_UNM,dt=O.OP_VARARG,At=r(3),gt=At.LUA_MAXINTEGER,Tt=At.LUA_MININTEGER,xt=At.lua_numbertointeger,bt=r(4),kt=bt.lua_assert,Ot=bt.luai_nummod,Et=r(6),mt=r(13),Ut=r(12),Nt=r(10),Rt=Nt.luaS_bless,yt=Nt.luaS_eqlngstr,St=Nt.luaS_hashlongstr,wt=r(8),It=r(14),Mt=r(9),Pt=r(11),Ct=function(t,e,r){return e+r.A},Dt=function(t,e,r){return e+r.B},Vt=function(t,e,r,n){return b(n.B)?r[x(n.B)]:t.stack[e+n.B]},Bt=function(t,e,r,n){return b(n.C)?r[x(n.C)]:t.stack[e+n.C]},Gt=function(t,e,r,n){var a=r.A;0!==a&&mt.luaF_close(t,e.l_base+a-1),e.l_savedpc+=r.sBx+n},Kt=function(t,e){Gt(t,e,e.l_code[e.l_savedpc],1)},Ft=function(t,e,r){if(e.ttisnumber()&&r.ttisnumber())return Zt(e,r)?1:0;if(e.ttisstring()&&r.ttisstring())return Wt(e.tsvalue(),r.tsvalue())<0?1:0;var n=It.luaT_callorderTM(t,e,r,It.TMS.TM_LT);return null===n&&Pt.luaG_ordererror(t,e,r),n?1:0},jt=function(t,e,r){var n;return e.ttisnumber()&&r.ttisnumber()?qt(e,r)?1:0:e.ttisstring()&&r.ttisstring()?Wt(e.tsvalue(),r.tsvalue())<=0?1:0:null!==(n=It.luaT_callorderTM(t,e,r,It.TMS.TM_LE))?n?1:0:(t.ci.callstatus|=Ut.CIST_LEQ,n=It.luaT_callorderTM(t,r,e,It.TMS.TM_LT),t.ci.callstatus^=Ut.CIST_LEQ,null===n&&Pt.luaG_ordererror(t,e,r),n?0:1)},Ht=function(t,e,r){if(e.ttype()!==r.ttype())return e.ttnov()!==r.ttnov()||e.ttnov()!==p?0:e.value===r.value?1:0;var n;switch(e.ttype()){case _:return 1;case l:return e.value==r.value?1:0;case c:case h:case v:case i:return e.value===r.value?1:0;case L:case f:return yt(e.tsvalue(),r.tsvalue())?1:0;case A:case d:if(e.value===r.value)return 1;if(null===t)return 0;null===(n=It.fasttm(t,e.value.metatable,It.TMS.TM_EQ))&&(n=It.fasttm(t,r.value.metatable,It.TMS.TM_EQ));break;default:return e.value===r.value?1:0}if(null===n)return 0;var a=new Et.TValue;return It.luaT_callTM(t,n,e,r,a,1),a.l_isfalse()?0:1},Xt=function(t,e){var r=!1,n=zt(t,e<0?2:1);if(!1===n){var a=Jt(t);if(!1===a)return!1;0<a?(n=gt,e<0&&(r=!0)):(n=Tt,e>=0&&(r=!0))}return{stopnow:r,ilimit:n}},zt=function t(e,r){if(e.ttisfloat()){var n=e.value,a=Math.floor(n);if(n!==a){if(0===r)return!1;r>1&&(a+=1)}return xt(a)}if(e.ttisinteger())return e.value;if(se(e)){var u=new Et.TValue;if(Et.luaO_str2num(e.svalue(),u)===e.vslen()+1)return t(u,r)}return!1},Yt=function(t){return t.ttisinteger()?t.value:zt(t,0)},Jt=function(t){if(t.ttnov()===p)return t.value;if(se(t)){var e=new Et.TValue;if(Et.luaO_str2num(t.svalue(),e)===t.vslen()+1)return e.value}return!1},Zt=function(t,e){return t.value<e.value},qt=function(t,e){return t.value<=e.value},Wt=function(t,e){var r=St(t),n=St(e);return r===n?0:r<n?-1:1},Qt=function(t,e,r){var n;switch(r.ttype()){case d:var a=r.value;if(null!==(n=It.fasttm(t,a.metatable,It.TMS.TM_LEN)))break;return void e.setivalue(Mt.luaH_getn(a));case L:case f:return void e.setivalue(r.vslen());default:(n=It.luaT_gettmbyobj(t,r,It.TMS.TM_LEN)).ttisnil()&&Pt.luaG_typeerror(t,r,g("get length of",!0))}It.luaT_callTM(t,n,r,r,e,1)},$t=Math.imul||function(t,e){var r=65535&t,n=65535&e;return r*n+((t>>>16&65535)*n+r*(e>>>16&65535)<<16>>>0)|0},te=function(t,e,r){return 0===r&&Pt.luaG_runerror(t,g("attempt to divide by zero")),0|Math.floor(e/r)},ee=function(t,e,r){return 0===r&&Pt.luaG_runerror(t,g("attempt to perform 'n%%0'")),e-Math.floor(e/r)*r|0},re=function(t,e){return e<0?e<=-32?0:t>>>-e:e>=32?0:t<<e},ne=function(t,e,r,n){var a=t.cache;if(null!==a)for(var u=t.upvalues,s=u.length,o=0;o<s;o++){var l=u[o].instack?r[n+u[o].idx]:e[u[o].idx];if(a.upvals[o]!==l)return null}return a},ae=function(t,e,r,n,a){var u=e.upvalues.length,s=e.upvalues,o=new Et.LClosure(t,u);o.p=e,t.stack[a].setclLvalue(o);for(var l=0;l<u;l++)s[l].instack?o.upvals[l]=mt.luaF_findupval(t,n+s[l].idx):o.upvals[l]=r[s[l].idx];e.cache=o},ue=function(t){return t.ttisnumber()},se=function(t){return t.ttisstring()},oe=function(t,e){var r=t.stack[e];return!!r.ttisstring()||!!ue(r)&&(Et.luaO_tostring(t,r),!0)},le=function(t){return t.ttisstring()&&0===t.vslen()},ie=function(t,e,r,n){var a=0;do{var u=t.stack[e-r],s=u.vslen(),o=u.svalue();n.set(o,a),a+=s}while(--r>0)},ce=function(t,e){kt(e>=2);do{var r=t.top,n=2;if((t.stack[r-2].ttisstring()||ue(t.stack[r-2]))&&oe(t,r-1))if(le(t.stack[r-1]))oe(t,r-2);else if(le(t.stack[r-2]))Et.setobjs2s(t,r-2,r-1);else{var a=t.stack[r-1].vslen();for(n=1;n<e&&oe(t,r-n-1);n++){a+=t.stack[r-n-1].vslen()}var u=new Uint8Array(a);ie(t,r,n,u);var s=Rt(t,u);Et.setsvalue2s(t,r-n,s)}else It.luaT_trybinTM(t,t.stack[r-2],t.stack[r-1],t.stack[r-2],It.TMS.TM_CONCAT);for(e-=n-1;t.top>r-(n-1);)delete t.stack[--t.top]}while(e>1)},fe=function(t,e,r,n){for(var a=0;a<2e3;a++){var u=void 0;if(e.ttistable()){var s=Mt.luaH_get(t,e.value,r);if(!s.ttisnil())return void Et.setobj2s(t,n,s);if(null===(u=It.fasttm(t,e.value.metatable,It.TMS.TM_INDEX)))return void t.stack[n].setnilvalue()}else(u=It.luaT_gettmbyobj(t,e,It.TMS.TM_INDEX)).ttisnil()&&Pt.luaG_typeerror(t,e,g("index",!0));if(u.ttisfunction())return void It.luaT_callTM(t,u,e,r,t.stack[n],1);e=u}Pt.luaG_runerror(t,g("'__index' chain too long; possible loop",!0))},_e=function(t,e,r,n){for(var a=0;a<2e3;a++){var u=void 0;if(e.ttistable()){var s=e.value;if(!Mt.luaH_get(t,s,r).ttisnil()||null===(u=It.fasttm(t,s.metatable,It.TMS.TM_NEWINDEX)))return Mt.luaH_setfrom(t,s,r,n),void Mt.invalidateTMcache(s)}else(u=It.luaT_gettmbyobj(t,e,It.TMS.TM_NEWINDEX)).ttisnil()&&Pt.luaG_typeerror(t,e,g("index",!0));if(u.ttisfunction())return void It.luaT_callTM(t,u,e,r,n,0);e=u}Pt.luaG_runerror(t,g("'__newindex' chain too long; possible loop",!0))};t.exports.cvt2str=ue,t.exports.cvt2num=se,t.exports.luaV_gettable=fe,t.exports.luaV_concat=ce,t.exports.luaV_div=te,t.exports.luaV_equalobj=Ht,t.exports.luaV_execute=function(t){var e=t.ci;e.callstatus|=Ut.CIST_FRESH;t:for(;;){kt(e===t.ci);var r=e.func.value,n=r.p.k,o=e.l_base,l=e.l_code[e.l_savedpc++];t.hookmask&(a|u)&&Pt.luaG_traceexec(t);var i=Ct(0,o,l);switch(l.opcode){case W:Et.setobjs2s(t,i,Dt(0,o,l));break;case z:var c=n[l.Bx];Et.setobj2s(t,i,c);break;case Y:kt(e.l_code[e.l_savedpc].opcode===P);var f=n[e.l_code[e.l_savedpc++].Ax];Et.setobj2s(t,i,f);break;case X:t.stack[i].setbvalue(0!==l.B),0!==l.C&&e.l_savedpc++;break;case J:for(var _=0;_<=l.B;_++)t.stack[i+_].setnilvalue();break;case G:var p=l.B;Et.setobj2s(t,i,r.upvals[p]);break;case B:var v=r.upvals[l.B],h=Bt(t,o,n,l);fe(t,v,h,i);break;case V:var L=t.stack[Dt(0,o,l)],d=Bt(t,o,n,l);fe(t,L,d,i);break;case st:var A=r.upvals[l.A],T=Vt(t,o,n,l),x=Bt(t,o,n,l);_e(t,A,T,x);break;case ot:r.upvals[l.B].setfrom(t.stack[i]);break;case ut:var b=t.stack[i],O=Vt(t,o,n,l),At=Bt(t,o,n,l);_e(t,b,O,At);break;case $:t.stack[i].sethvalue(Mt.luaH_new(t));break;case nt:var gt=Dt(0,o,l),Tt=Bt(t,o,n,l);Et.setobjs2s(t,i+1,gt),fe(t,t.stack[gt],Tt,i);break;case E:var xt=Vt(t,o,n,l),bt=Bt(t,o,n,l),Nt=void 0,Rt=void 0;xt.ttisinteger()&&bt.ttisinteger()?t.stack[i].setivalue(xt.value+bt.value|0):!1!==(Nt=Jt(xt))&&!1!==(Rt=Jt(bt))?t.stack[i].setfltvalue(Nt+Rt):It.luaT_trybinTM(t,xt,bt,t.stack[i],It.TMS.TM_ADD);break;case ct:var yt=Vt(t,o,n,l),St=Bt(t,o,n,l),zt=void 0,Zt=void 0;yt.ttisinteger()&&St.ttisinteger()?t.stack[i].setivalue(yt.value-St.value|0):!1!==(zt=Jt(yt))&&!1!==(Zt=Jt(St))?t.stack[i].setfltvalue(zt-Zt):It.luaT_trybinTM(t,yt,St,t.stack[i],It.TMS.TM_SUB);break;case Q:var qt=Vt(t,o,n,l),Wt=Bt(t,o,n,l),ue=void 0,se=void 0;qt.ttisinteger()&&Wt.ttisinteger()?t.stack[i].setivalue($t(qt.value,Wt.value)):!1!==(ue=Jt(qt))&&!1!==(se=Jt(Wt))?t.stack[i].setfltvalue(ue*se):It.luaT_trybinTM(t,qt,Wt,t.stack[i],It.TMS.TM_MUL);break;case q:var oe=Vt(t,o,n,l),le=Bt(t,o,n,l),ie=void 0,pe=void 0;oe.ttisinteger()&&le.ttisinteger()?t.stack[i].setivalue(ee(t,oe.value,le.value)):!1!==(ie=Jt(oe))&&!1!==(pe=Jt(le))?t.stack[i].setfltvalue(Ot(t,ie,pe)):It.luaT_trybinTM(t,oe,le,t.stack[i],It.TMS.TM_MOD);break;case et:var ve,he=Vt(t,o,n,l),Le=Bt(t,o,n,l),de=void 0;!1!==(ve=Jt(he))&&!1!==(de=Jt(Le))?t.stack[i].setfltvalue(Math.pow(ve,de)):It.luaT_trybinTM(t,he,Le,t.stack[i],It.TMS.TM_POW);break;case I:var Ae,ge=Vt(t,o,n,l),Te=Bt(t,o,n,l),xe=void 0;!1!==(Ae=Jt(ge))&&!1!==(xe=Jt(Te))?t.stack[i].setfltvalue(Ae/xe):It.luaT_trybinTM(t,ge,Te,t.stack[i],It.TMS.TM_DIV);break;case K:var be=Vt(t,o,n,l),ke=Bt(t,o,n,l),Oe=void 0,Ee=void 0;be.ttisinteger()&&ke.ttisinteger()?t.stack[i].setivalue(te(t,be.value,ke.value)):!1!==(Oe=Jt(be))&&!1!==(Ee=Jt(ke))?t.stack[i].setfltvalue(Math.floor(Oe/Ee)):It.luaT_trybinTM(t,be,ke,t.stack[i],It.TMS.TM_IDIV);break;case m:var me,Ue=Vt(t,o,n,l),Ne=Bt(t,o,n,l),Re=void 0;!1!==(me=Yt(Ue))&&!1!==(Re=Yt(Ne))?t.stack[i].setivalue(me&Re):It.luaT_trybinTM(t,Ue,Ne,t.stack[i],It.TMS.TM_BAND);break;case N:var ye,Se=Vt(t,o,n,l),we=Bt(t,o,n,l),Ie=void 0;!1!==(ye=Yt(Se))&&!1!==(Ie=Yt(we))?t.stack[i].setivalue(ye|Ie):It.luaT_trybinTM(t,Se,we,t.stack[i],It.TMS.TM_BOR);break;case R:var Me,Pe=Vt(t,o,n,l),Ce=Bt(t,o,n,l),De=void 0;!1!==(Me=Yt(Pe))&&!1!==(De=Yt(Ce))?t.stack[i].setivalue(Me^De):It.luaT_trybinTM(t,Pe,Ce,t.stack[i],It.TMS.TM_BXOR);break;case lt:var Ve,Be=Vt(t,o,n,l),Ge=Bt(t,o,n,l),Ke=void 0;!1!==(Ve=Yt(Be))&&!1!==(Ke=Yt(Ge))?t.stack[i].setivalue(re(Ve,Ke)):It.luaT_trybinTM(t,Be,Ge,t.stack[i],It.TMS.TM_SHL);break;case it:var Fe,je=Vt(t,o,n,l),He=Bt(t,o,n,l),Xe=void 0;!1!==(Fe=Yt(je))&&!1!==(Xe=Yt(He))?t.stack[i].setivalue(re(Fe,-Xe)):It.luaT_trybinTM(t,je,He,t.stack[i],It.TMS.TM_SHR);break;case Lt:var ze=t.stack[Dt(0,o,l)],Ye=void 0;ze.ttisinteger()?t.stack[i].setivalue(0|-ze.value):!1!==(Ye=Jt(ze))?t.stack[i].setfltvalue(-Ye):It.luaT_trybinTM(t,ze,ze,t.stack[i],It.TMS.TM_UNM);break;case U:var Je=t.stack[Dt(0,o,l)];Je.ttisinteger()?t.stack[i].setivalue(~Je.value):It.luaT_trybinTM(t,Je,Je,t.stack[i],It.TMS.TM_BNOT);break;case tt:var Ze=t.stack[Dt(0,o,l)];t.stack[i].setbvalue(Ze.l_isfalse());break;case H:Qt(t,t.stack[i],t.stack[Dt(0,o,l)]);break;case w:var qe=l.B,We=l.C;t.top=o+We+1,ce(t,We-qe+1);var Qe=o+qe;Et.setobjs2s(t,i,Qe),wt.adjust_top(t,e.top);break;case F:Gt(t,e,l,0);break;case M:Ht(t,Vt(t,o,n,l),Bt(t,o,n,l))!==l.A?e.l_savedpc++:Kt(t,e);break;case Z:Ft(t,Vt(t,o,n,l),Bt(t,o,n,l))!==l.A?e.l_savedpc++:Kt(t,e);break;case j:jt(t,Vt(t,o,n,l),Bt(t,o,n,l))!==l.A?e.l_savedpc++:Kt(t,e);break;case _t:(l.C?t.stack[i].l_isfalse():!t.stack[i].l_isfalse())?e.l_savedpc++:Kt(t,e);break;case pt:var $e=Dt(0,o,l),tr=t.stack[$e];(l.C?tr.l_isfalse():!tr.l_isfalse())?e.l_savedpc++:(Et.setobjs2s(t,i,$e),Kt(t,e));break;case y:var er=l.B,rr=l.C-1;if(0!==er&&wt.adjust_top(t,i+er),!wt.luaD_precall(t,i,rr)){e=t.ci;continue t}rr>=0&&wt.adjust_top(t,e.top);break;case ft:var nr=l.B;if(0!==nr&&wt.adjust_top(t,i+nr),!wt.luaD_precall(t,i,s)){var ar=t.ci,ur=ar.previous,sr=ar.func,or=ar.funcOff,lr=ur.funcOff,ir=ar.l_base+sr.value.p.numparams;r.p.p.length>0&&mt.luaF_close(t,ur.l_base);for(var cr=0;or+cr<ir;cr++)Et.setobjs2s(t,lr+cr,or+cr);ur.l_base=lr+(ar.l_base-or),ur.top=lr+(t.top-or),wt.adjust_top(t,ur.top),ur.l_code=ar.l_code,ur.l_savedpc=ar.l_savedpc,ur.callstatus|=Ut.CIST_TAIL,ur.next=null,e=t.ci=ur,kt(t.top===ur.l_base+t.stack[lr].value.p.maxstacksize);continue t}break;case rt:r.p.p.length>0&&mt.luaF_close(t,o);var fr=wt.luaD_poscall(t,e,i,0!==l.B?l.B-1:t.top-i);if(e.callstatus&Ut.CIST_FRESH)return;e=t.ci,fr&&wt.adjust_top(t,e.top),kt(e.callstatus&Ut.CIST_LUA),kt(e.l_code[e.l_savedpc-1].opcode===y);continue t;case C:if(t.stack[i].ttisinteger()){var _r=t.stack[i+2].value,pr=t.stack[i].value+_r|0,vr=t.stack[i+1].value;(0<_r?pr<=vr:vr<=pr)&&(e.l_savedpc+=l.sBx,t.stack[i].chgivalue(pr),t.stack[i+3].setivalue(pr))}else{var hr=t.stack[i+2].value,Lr=t.stack[i].value+hr,dr=t.stack[i+1].value;(0<hr?Lr<=dr:dr<=Lr)&&(e.l_savedpc+=l.sBx,t.stack[i].chgfltvalue(Lr),t.stack[i+3].setfltvalue(Lr))}break;case D:var Ar=t.stack[i],gr=t.stack[i+1],Tr=t.stack[i+2],xr=void 0;if(Ar.ttisinteger()&&Tr.ttisinteger()&&(xr=Xt(gr,Tr.value))){var br=xr.stopnow?0:Ar.value;gr.value=xr.ilimit,Ar.value=br-Tr.value|0}else{var kr,Or,Er;!1===(kr=Jt(gr))&&Pt.luaG_runerror(t,g("'for' limit must be a number",!0)),t.stack[i+1].setfltvalue(kr),!1===(Or=Jt(Tr))&&Pt.luaG_runerror(t,g("'for' step must be a number",!0)),t.stack[i+2].setfltvalue(Or),!1===(Er=Jt(Ar))&&Pt.luaG_runerror(t,g("'for' initial value must be a number",!0)),t.stack[i].setfltvalue(Er-Or)}e.l_savedpc+=l.sBx;break;case vt:var mr=i+3;Et.setobjs2s(t,mr+2,i+2),Et.setobjs2s(t,mr+1,i+1),Et.setobjs2s(t,mr,i),wt.adjust_top(t,mr+3),wt.luaD_call(t,mr,l.C),wt.adjust_top(t,e.top),l=e.l_code[e.l_savedpc++],i=Ct(0,o,l),kt(l.opcode===ht);case ht:t.stack[i+1].ttisnil()||(Et.setobjs2s(t,i,i+1),e.l_savedpc+=l.sBx);break;case at:var Ur=l.B,Nr=l.C;0===Ur&&(Ur=t.top-i-1),0===Nr&&(kt(e.l_code[e.l_savedpc].opcode===P),Nr=e.l_code[e.l_savedpc++].Ax);for(var Rr=t.stack[i].value,yr=(Nr-1)*k+Ur;Ur>0;Ur--)Mt.luaH_setint(Rr,yr--,t.stack[i+Ur]);wt.adjust_top(t,e.top);break;case S:var Sr=r.p.p[l.Bx],wr=ne(Sr,r.upvals,t.stack,o);null===wr?ae(t,Sr,r.upvals,o,i):t.stack[i].setclLvalue(wr);break;case dt:var Ir=l.B-1,Mr=o-e.funcOff-r.p.numparams-1,Pr=void 0;for(Mr<0&&(Mr=0),Ir<0&&(Ir=Mr,wt.luaD_checkstack(t,Mr),wt.adjust_top(t,i+Mr)),Pr=0;Pr<Ir&&Pr<Mr;Pr++)Et.setobjs2s(t,i+Pr,o-Mr+Pr);for(;Pr<Ir;Pr++)t.stack[i+Pr].setnilvalue();break;case P:throw Error("invalid opcode")}}},t.exports.luaV_finishOp=function(t){var e=t.ci,r=e.l_base,n=e.l_code[e.l_savedpc-1],a=n.opcode;switch(a){case E:case ct:case Q:case I:case K:case m:case N:case R:case lt:case it:case q:case et:case Lt:case U:case H:case B:case V:case nt:Et.setobjs2s(t,r+n.A,t.top-1),delete t.stack[--t.top];break;case j:case Z:case M:var u=!t.stack[t.top-1].l_isfalse();delete t.stack[--t.top],e.callstatus&Ut.CIST_LEQ&&(kt(a===j),e.callstatus^=Ut.CIST_LEQ,u=!u),kt(e.l_code[e.l_savedpc].opcode===F),u!==!!n.A&&e.l_savedpc++;break;case w:var s=t.top-1,o=s-1-(r+n.B);Et.setobjs2s(t,s-2,s),o>1&&(t.top=s-1,ce(t,o)),Et.setobjs2s(t,e.l_base+n.A,t.top-1),wt.adjust_top(t,e.top);break;case vt:kt(e.l_code[e.l_savedpc].opcode===ht),wt.adjust_top(t,e.top);break;case y:n.C-1>=0&&wt.adjust_top(t,e.top)}},t.exports.luaV_imul=$t,t.exports.luaV_lessequal=jt,t.exports.luaV_lessthan=Ft,t.exports.luaV_mod=ee,t.exports.luaV_objlen=Qt,t.exports.luaV_rawequalobj=function(t,e){return Ht(null,t,e)},t.exports.luaV_shiftl=re,t.exports.luaV_tointeger=zt,t.exports.settable=_e,t.exports.tointeger=Yt,t.exports.tonumber=Jt},function(t,e,r){"use strict";var n=[96,113,65,84,80,80,92,108,60,16,60,84,108,124,124,124,124,124,124,124,124,124,124,124,124,96,96,96,96,104,34,188,188,188,132,228,84,84,16,98,98,4,98,20,81,80,23],a=function(t,e){return~(-1<<t)<<e},u=function(t,e){return~a(t,e)},s=function(t,e,r,n){return t.code=t.code&u(n,r)|e<<r&a(n,r),l(t)},o=function(t,e){return s(t,e,14,18)},l=function(t){if("number"==typeof t)return{code:t,opcode:t>>0&a(6,0),A:t>>6&a(8,0),B:t>>23&a(9,0),C:t>>14&a(9,0),Bx:t>>14&a(18,0),Ax:t>>6&a(26,0),sBx:(t>>14&a(18,0))-131071};var e=t.code;return t.opcode=e>>0&a(6,0),t.A=e>>6&a(8,0),t.B=e>>23&a(9,0),t.C=e>>14&a(9,0),t.Bx=e>>14&a(18,0),t.Ax=e>>6&a(26,0),t.sBx=(e>>14&a(18,0))-131071,t};t.exports.BITRK=256,t.exports.CREATE_ABC=function(t,e,r,n){return l(t<<0|e<<6|r<<23|n<<14)},t.exports.CREATE_ABx=function(t,e,r){return l(t<<0|e<<6|r<<14)},t.exports.CREATE_Ax=function(t,e){return l(t<<0|e<<6)},t.exports.GET_OPCODE=function(t){return t.opcode},t.exports.GETARG_A=function(t){return t.A},t.exports.GETARG_B=function(t){return t.B},t.exports.GETARG_C=function(t){return t.C},t.exports.GETARG_Bx=function(t){return t.Bx},t.exports.GETARG_Ax=function(t){return t.Ax},t.exports.GETARG_sBx=function(t){return t.sBx},t.exports.INDEXK=function(t){return-257&t},t.exports.ISK=function(t){return 256&t},t.exports.LFIELDS_PER_FLUSH=50,t.exports.MAXARG_A=255,t.exports.MAXARG_Ax=67108863,t.exports.MAXARG_B=511,t.exports.MAXARG_Bx=262143,t.exports.MAXARG_C=511,t.exports.MAXARG_sBx=131071,t.exports.MAXINDEXRK=255,t.exports.NO_REG=255,t.exports.OpArgK=3,t.exports.OpArgN=0,t.exports.OpArgR=2,t.exports.OpArgU=1,t.exports.OpCodes=["MOVE","LOADK","LOADKX","LOADBOOL","LOADNIL","GETUPVAL","GETTABUP","GETTABLE","SETTABUP","SETUPVAL","SETTABLE","NEWTABLE","SELF","ADD","SUB","MUL","MOD","POW","DIV","IDIV","BAND","BOR","BXOR","SHL","SHR","UNM","BNOT","NOT","LEN","CONCAT","JMP","EQ","LT","LE","TEST","TESTSET","CALL","TAILCALL","RETURN","FORLOOP","FORPREP","TFORCALL","TFORLOOP","SETLIST","CLOSURE","VARARG","EXTRAARG"],t.exports.OpCodesI={OP_MOVE:0,OP_LOADK:1,OP_LOADKX:2,OP_LOADBOOL:3,OP_LOADNIL:4,OP_GETUPVAL:5,OP_GETTABUP:6,OP_GETTABLE:7,OP_SETTABUP:8,OP_SETUPVAL:9,OP_SETTABLE:10,OP_NEWTABLE:11,OP_SELF:12,OP_ADD:13,OP_SUB:14,OP_MUL:15,OP_MOD:16,OP_POW:17,OP_DIV:18,OP_IDIV:19,OP_BAND:20,OP_BOR:21,OP_BXOR:22,OP_SHL:23,OP_SHR:24,OP_UNM:25,OP_BNOT:26,OP_NOT:27,OP_LEN:28,OP_CONCAT:29,OP_JMP:30,OP_EQ:31,OP_LT:32,OP_LE:33,OP_TEST:34,OP_TESTSET:35,OP_CALL:36,OP_TAILCALL:37,OP_RETURN:38,OP_FORLOOP:39,OP_FORPREP:40,OP_TFORCALL:41,OP_TFORLOOP:42,OP_SETLIST:43,OP_CLOSURE:44,OP_VARARG:45,OP_EXTRAARG:46},t.exports.POS_A=6,t.exports.POS_Ax=6,t.exports.POS_B=23,t.exports.POS_Bx=14,t.exports.POS_C=14,t.exports.POS_OP=0,t.exports.RKASK=function(t){return 256|t},t.exports.SETARG_A=function(t,e){return s(t,e,6,8)},t.exports.SETARG_Ax=function(t,e){return s(t,e,6,26)},t.exports.SETARG_B=function(t,e){return s(t,e,23,9)},t.exports.SETARG_Bx=o,t.exports.SETARG_C=function(t,e){return s(t,e,14,9)},t.exports.SETARG_sBx=function(t,e){return o(t,e+131071)},t.exports.SET_OPCODE=function(t,e){return t.code=t.code&u(6,0)|e<<0&a(6,0),l(t)},t.exports.SIZE_A=8,t.exports.SIZE_Ax=26,t.exports.SIZE_B=9,t.exports.SIZE_Bx=18,t.exports.SIZE_C=9,t.exports.SIZE_OP=6,t.exports.fullins=l,t.exports.getBMode=function(t){return n[t]>>4&3},t.exports.getCMode=function(t){return n[t]>>2&3},t.exports.getOpMode=function(t){return 3&n[t]},t.exports.iABC=0,t.exports.iABx=1,t.exports.iAsBx=2,t.exports.iAx=3,t.exports.testAMode=function(t){return 64&n[t]},t.exports.testTMode=function(t){return 128&n[t]}},function(t,e,r){"use strict";var n=r(2),a="_"+n.LUA_VERSION_MAJOR+"_"+n.LUA_VERSION_MINOR;t.exports.LUA_VERSUFFIX=a,t.exports.lua_assert=function(t){},t.exports.luaopen_base=r(24).luaopen_base;t.exports.LUA_COLIBNAME="coroutine",t.exports.luaopen_coroutine=r(25).luaopen_coroutine;t.exports.LUA_TABLIBNAME="table",t.exports.luaopen_table=r(26).luaopen_table;t.exports.LUA_OSLIBNAME="os",t.exports.luaopen_os=r(27).luaopen_os;t.exports.LUA_STRLIBNAME="string",t.exports.luaopen_string=r(28).luaopen_string;t.exports.LUA_UTF8LIBNAME="utf8",t.exports.luaopen_utf8=r(29).luaopen_utf8;t.exports.LUA_BITLIBNAME="bit32";t.exports.LUA_MATHLIBNAME="math",t.exports.luaopen_math=r(30).luaopen_math;t.exports.LUA_DBLIBNAME="debug",t.exports.luaopen_debug=r(31).luaopen_debug;t.exports.LUA_LOADLIBNAME="package",t.exports.luaopen_package=r(32).luaopen_package;t.exports.LUA_FENGARILIBNAME="fengari",t.exports.luaopen_fengari=r(33).luaopen_fengari;var u=r(39);t.exports.luaL_openlibs=u.luaL_openlibs},function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var a=r(0),u=a.lua,s=a.lauxlib,o=a.lualib,l=a.to_luastring,i=u.LUA_MULTRET,c=u.LUA_OK,f=u.LUA_REGISTRYINDEX,_=u.LUA_RIDX_MAINTHREAD,p=u.LUA_TBOOLEAN,v=u.LUA_TFUNCTION,h=u.LUA_TLIGHTUSERDATA,L=u.LUA_TNIL,d=u.LUA_TNONE,A=u.LUA_TNUMBER,g=u.LUA_TSTRING,T=u.LUA_TTABLE,x=u.LUA_TTHREAD,b=u.LUA_TUSERDATA,k=u.lua_atnativeerror,O=u.lua_call,E=u.lua_getfield,m=u.lua_gettable,U=u.lua_gettop,N=u.lua_isnil,R=u.lua_isproxy,y=u.lua_newuserdata,S=u.lua_pcall,w=u.lua_pop,I=u.lua_pushboolean,M=u.lua_pushcfunction,P=u.lua_pushinteger,C=u.lua_pushlightuserdata,D=u.lua_pushliteral,V=u.lua_pushnil,B=u.lua_pushnumber,G=u.lua_pushstring,K=u.lua_pushvalue,F=u.lua_rawgeti,j=u.lua_rawgetp,H=u.lua_rawsetp,X=u.lua_rotate,z=u.lua_setfield,Y=u.lua_settable,J=u.lua_settop,Z=u.lua_toboolean,q=u.lua_tojsstring,W=u.lua_tonumber,Q=u.lua_toproxy,$=u.lua_tothread,tt=u.lua_touserdata,et=u.lua_type,rt=s.luaL_argerror,nt=s.luaL_checkany,at=s.luaL_checkoption,ut=s.luaL_checkstack,st=s.luaL_checkudata,ot=s.luaL_error,lt=s.luaL_getmetafield,it=s.luaL_newlib,ct=s.luaL_newmetatable,ft=s.luaL_requiref,_t=s.luaL_setfuncs,pt=s.luaL_setmetatable,vt=s.luaL_testudata,ht=s.luaL_tolstring,Lt=o.luaopen_base;var dt,At,gt,Tt="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:(0,eval)("this");if("undefined"!=typeof Reflect)dt=Reflect.apply,At=Reflect.construct,gt=Reflect.deleteProperty;else{var xt=Function.apply,bt=Function.bind;dt=function(t,e,r){return xt.call(t,e,r)},At=function(t,e){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var r=[null];return r.push.apply(r,e),new(bt.apply(t,r))},gt=Function("t","k","delete t[k]")}var kt=String.prototype.concat.bind(""),Ot=function(t){return"object"===n(t)?null!==t:"function"==typeof t},Et=l("js object"),mt=function(t,e){var r=vt(t,e,Et);return r?r.data:void 0},Ut=function(t,e){return st(t,e,Et).data},Nt=function(t,e){y(t).data=e,pt(t,Et)},Rt=function(t){F(t,f,_);var e=$(t,-1);return w(t,1),e},yt=new WeakMap,St=function(t,e){switch(n(e)){case"undefined":V(t);break;case"number":B(t,e);break;case"string":G(t,l(e));break;case"boolean":I(t,e);break;case"symbol":C(t,e);break;case"function":if(R(e,t)){e(t);break}case"object":if(null===e){if(j(t,f,null)!==b)throw Error("js library not loaded into lua_State");break}default:var r=yt.get(Rt(t));if(!r)throw Error("js library not loaded into lua_State");var a=r.get(e);a?a(t):(Nt(t,e),a=Q(t,-1),r.set(e,a))}},wt=function(t){var e=tt(t,1);return St(t,e),1},It=function(t,e){switch(et(t,e)){case d:case L:return;case p:return Z(t,e);case h:return tt(t,e);case A:return W(t,e);case g:return q(t,e);case b:var r=mt(t,e);if(void 0!==r)return r;case T:case v:case x:default:return jt(t,Q(t,e))}},Mt=function(t,e){var r=S(t,e,1,0),n=It(t,-1);switch(w(t,1),r){case c:return n;default:throw n}},Pt=function(t,e,r,n,a){if(!Ot(n))throw new TypeError("`args` argument must be an object");var u=+n.length;u>=0||(u=0),ut(t,2+u,null);var s=U(t);e(t),St(t,r);for(var o=0;o<u;o++)St(t,n[o]);switch(S(t,1+u,a,0)){case c:for(var l=U(t)-s,i=new Array(l),f=0;f<l;f++)i[f]=It(t,s+f+1);return J(t,s),i;default:var _=It(t,-1);throw J(t,s),_}},Ct=function(t){return m(t,1),1},Dt=function(t,e,r){return ut(t,3,null),M(t,Ct),e(t),St(t,r),Mt(t,2)},Vt=function(t,e,r){switch(ut(t,3,null),M(t,Ct),e(t),St(t,r),S(t,2,1,0)){case c:var n=N(t,-1);return w(t,1),!n;default:var a=It(t,-1);throw w(t,1),a}},Bt=function(t,e,r,n){switch(ut(t,4,null),M(t,function(t){return Y(t,1),0}),e(t),St(t,r),St(t,n),S(t,3,0,0)){case c:return;default:var a=It(t,-1);throw w(t,1),a}},Gt=function(t,e,r){switch(ut(t,4,null),M(t,function(t){return Y(t,1),0}),e(t),St(t,r),V(t),S(t,3,0,0)){case c:return;default:var n=It(t,-1);throw w(t,1),n}},Kt=function(t,e){return ut(t,2,null),M(t,function(t){return ht(t,1),1}),e(t),Mt(t,1)},Ft=function(){var t=this.L;ut(t,3,null);var e=U(t);switch(this.iter(t),this.state(t),this.last(t),S(t,2,i,0)){case c:var r;if(this.last=Q(t,e+1),N(t,-1))r={done:!0,value:void 0};else{for(var n=U(t)-e,a=new Array(n),u=0;u<n;u++)a[u]=It(t,e+u+1);r={done:!1,value:a}}return J(t,e),r;default:var s=It(t,-1);throw w(t,1),s}},jt=function(t,e){var r=Rt(t),n=function(){return Pt(r,e,this,arguments,1)[0]};n.apply=function(t,n){return Pt(r,e,t,n,1)[0]},n.invoke=function(t,n){return Pt(r,e,t,n,i)},n.get=function(t){return Dt(r,e,t)},n.has=function(t){return Vt(r,e,t)},n.set=function(t,n){return Bt(r,e,t,n)},n.delete=function(t){return Gt(r,e,t)},n.toString=function(){return Kt(r,e)},"function"==typeof Symbol&&(n[Symbol.toStringTag]="Fengari object",n[Symbol.iterator]=function(){return function(t,e){switch(ut(t,1,null),M(t,function(t){return ft(t,l("_G"),Lt,0),E(t,-1,l("pairs")),e(t),O(t,1,3),3}),S(t,0,3,0)){case c:var r=Q(t,-3),n=Q(t,-2),a=Q(t,-1);return w(t,3),{L:t,iter:r,state:n,last:a,next:Ft};default:var u=It(t,-1);throw w(t,1),u}}(r,e)},Symbol.toPrimitive&&(n[Symbol.toPrimitive]=function(t){if("string"===t)return Kt(r,e)}));var a=yt.get(r);if(!a)throw Error("js library not loaded into lua_State");return a.set(n,e),n},Ht={new:function(t){for(var e=It(t,1),r=U(t)-1,n=new Array(r),a=0;a<r;a++)n[a]=It(t,a+2);return St(t,At(e,n)),1},tonumber:function(t){var e=It(t,1);return B(t,+e),1},tostring:function(t){var e=It(t,1);return D(t,kt(e)),1},instanceof:function(t){var e=It(t,1),r=It(t,2);return I(t,e instanceof r),1},typeof:function t(e){var r=It(e,1);return D(e,t(r)),1}};if("function"==typeof Symbol&&Symbol.iterator){var Xt=function(t){var e=It(t,1).next();return e.done?0:(St(t,e.value),1)};Ht.of=function(t){var e=function(t,e){var r=Ut(t,e),n=r[Symbol.iterator];n||rt(t,e,l("object not iterable"));var a=dt(n,r,[]);return Ot(a)||rt(t,e,l("Result of the Symbol.iterator method is not an object")),a}(t,1);return M(t,Xt),St(t,e),2}}if("function"==typeof Proxy&&"function"==typeof Symbol){var zt=Symbol("lua_State"),Yt=Symbol("fengari-proxy"),Jt={apply:function(t,e,r){return Pt(t[zt],t[Yt],e,r,1)[0]},construct:function(t,e){var r=t[zt],n=t[Yt],a=e.length;ut(r,2+a,null),n(r);var u=U(r);if(lt(r,u,l("construct"))===L)throw w(r,1),new TypeError("not a constructor");X(r,u,1);for(var s=0;s<a;s++)St(r,e[s]);return Mt(r,1+a)},defineProperty:function(t,e,r){var n=t[zt],a=t[Yt];return ut(n,4,null),a(n),lt(n,-1,l("defineProperty"))===L?(w(n,1),!1):(X(n,-2,1),St(n,e),St(n,r),Mt(n,3))},deleteProperty:function(t,e){return Gt(t[zt],t[Yt],e)},get:function(t,e){return Dt(t[zt],t[Yt],e)},getOwnPropertyDescriptor:function(t,e){var r=t[zt],n=t[Yt];if(ut(r,3,null),n(r),lt(r,-1,l("getOwnPropertyDescriptor"))!==L)return X(r,-2,1),St(r,e),Mt(r,2);w(r,1)},getPrototypeOf:function(t){var e=t[zt],r=t[Yt];return ut(e,2,null),r(e),lt(e,-1,l("getPrototypeOf"))===L?(w(e,1),null):(X(e,-2,1),Mt(e,1))},has:function(t,e){return Vt(t[zt],t[Yt],e)},ownKeys:function(t){var e=t[zt],r=t[Yt];if(ut(e,2,null),r(e),lt(e,-1,l("ownKeys"))===L)throw w(e,1),Error("ownKeys unknown for fengari object");return X(e,-2,1),Mt(e,1)},set:function(t,e,r){return Bt(t[zt],t[Yt],e,r),!0},setPrototypeOf:function(t,e){var r=t[zt],n=t[Yt];return ut(r,3,null),n(r),lt(r,-1,l("setPrototypeOf"))===L?(w(r,1),!1):(X(r,-2,1),St(r,e),Mt(r,2))}},Zt=Function("return ()=>void 0;"),qt=function(t,e,r){var n,a=Rt(t);switch(r){case"function":n=function(){var t=function(){}.bind();return delete t.length,delete t.name,t}();break;case"arrow_function":n=function(){var t=Zt();return delete t.length,delete t.name,t}();break;case"object":n={};break;default:throw TypeError("invalid type to createproxy")}return n[Yt]=e,n[zt]=a,new Proxy(n,Jt)},Wt=["function","arrow_function","object"],Qt=Wt.map(function(t){return l(t)});Ht.createproxy=function(t){nt(t,1);var e=Wt[at(t,2,Qt[0],Qt)],r=qt(t,Q(t,1),e);return St(t,r),1}}var $t={__index:function(t){var e=Ut(t,1),r=It(t,2);return St(t,e[r]),1},__newindex:function(t){var e=Ut(t,1),r=It(t,2),n=It(t,3);return void 0===n?gt(e,r):e[r]=n,0},__tostring:function(t){var e=Ut(t,1),r=kt(e);return G(t,l(r)),1},__call:function(t){var e,r=Ut(t,1),n=U(t)-1,a=new Array(Math.max(0,n-1));if(n>0&&(e=It(t,2),n-- >0))for(var u=0;u<n;u++)a[u]=It(t,u+3);return St(t,dt(r,e,a)),1},__pairs:function(t){var e,r,n,a,u=Ut(t,1);if("function"!=typeof Symbol||void 0===(e=u[Symbol.for("__pairs")]))r=function(t){if(!(this.index>=this.keys.length)){var e=this.keys[this.index++];return[e,this.object[e]]}},n={object:u,keys:Object.keys(u),index:0};else{var s=dt(e,u,[]);void 0===s&&ot(t,l("bad '__pairs' result (object with keys 'iter', 'state', 'first' expected)")),void 0===(r=s.iter)&&ot(t,l("bad '__pairs' result (object.iter is missing)")),n=s.state,a=s.first}return M(t,function(){var e=It(t,1),n=It(t,2),a=dt(r,e,[n]);if(void 0===a)return 0;Array.isArray(a)||ot(t,l("bad iterator result (Array or undefined expected)")),ut(t,a.length,null);for(var u=0;u<a.length;u++)St(t,a[u]);return a.length}),St(t,n),St(t,a),3},__len:function(t){var e,r,n=Ut(t,1);return r="function"!=typeof Symbol||void 0===(e=n[Symbol.for("__len")])?n.length:dt(e,n,[]),St(t,r),1}};t.exports.FENGARI_INTEROP_VERSION="0.1",t.exports.FENGARI_INTEROP_VERSION_NUM=1,t.exports.FENGARI_INTEROP_RELEASE="0.1.2",t.exports.checkjs=Ut,t.exports.testjs=mt,t.exports.pushjs=Nt,t.exports.push=St,t.exports.tojs=It,t.exports.luaopen_js=function(t){return yt.set(Rt(t),new WeakMap),k(t,wt),it(t,Ht),D(t,"0.1"),z(t,-2,l("_VERSION")),P(t,1),z(t,-2,l("_VERSION_NUM")),D(t,"0.1.2"),z(t,-2,l("_RELEASE")),ct(t,Et),_t(t,$t,0),w(t,1),Nt(t,null),K(t,-1),H(t,f,null),z(t,-2,l("null")),St(t,Tt),z(t,-2,l("global")),1}},function(t,e,r){"use strict";var n=r(1),a=n.LUA_MULTRET,u=n.LUA_OPBNOT,s=n.LUA_OPEQ,o=n.LUA_OPLE,l=n.LUA_OPLT,i=n.LUA_OPUNM,c=n.LUA_REGISTRYINDEX,f=n.LUA_RIDX_GLOBALS,_=n.LUA_VERSION_NUM,p=n.constant_types,v=p.LUA_NUMTAGS,h=p.LUA_TBOOLEAN,L=p.LUA_TCCL,d=p.LUA_TFUNCTION,A=p.LUA_TLCF,g=p.LUA_TLCL,T=p.LUA_TLIGHTUSERDATA,x=p.LUA_TLNGSTR,b=p.LUA_TNIL,k=p.LUA_TNONE,O=p.LUA_TNUMFLT,E=p.LUA_TNUMINT,m=p.LUA_TSHRSTR,U=p.LUA_TTABLE,N=p.LUA_TTHREAD,R=p.LUA_TUSERDATA,y=n.thread_status.LUA_OK,S=n.from_userstring,w=n.to_luastring,I=r(4).api_check,M=r(11),P=r(8),C=r(37).luaU_dump,D=r(13),V=r(6),B=r(12),G=r(10),K=G.luaS_bless,F=G.luaS_new,j=G.luaS_newliteral,H=r(14),X=r(3).LUAI_MAXSTACK,z=r(15),Y=r(9),J=r(20).ZIO,Z=V.TValue,q=V.CClosure,W=function(t){t.top++,I(t,t.top<=t.ci.top,"stack overflow")},Q=function(t,e){I(t,e<t.top-t.ci.funcOff,"not enough elements in the stack")},$=function(t){if(!t)throw TypeError("invalid argument")},tt=function(t){$("number"==typeof t&&(0|t)===t)},et=function(t){return t!==V.luaO_nilobject},rt=function(t,e){var r=t.ci;if(e>0){var n=r.funcOff+e;return I(t,e<=r.top-(r.funcOff+1),"unacceptable index"),n>=t.top?V.luaO_nilobject:t.stack[n]}return e>c?(I(t,0!==e&&-e<=t.top,"invalid index"),t.stack[t.top+e]):e===c?t.l_G.l_registry:(I(t,(e=c-e)<=D.MAXUPVAL+1,"upvalue index too large"),r.func.ttislcf()?V.luaO_nilobject:e<=r.func.value.nupvalues?r.func.value.upvalue[e-1]:V.luaO_nilobject)},nt=function(t,e){var r=t.ci;if(e>0){var n=r.funcOff+e;return I(t,e<=r.top-(r.funcOff+1),"unacceptable index"),n>=t.top?null:n}if(e>c)return I(t,0!==e&&-e<=t.top,"invalid index"),t.top+e;throw Error("attempt to use pseudo-index")},at=function(t,e){var r,n=t.ci.funcOff;e>=0?(I(t,e<=t.stack_last-(n+1),"new top too large"),r=n+1+e):(I(t,-(e+1)<=t.top-(n+1),"invalid new top"),r=t.top+e+1),P.adjust_top(t,r)},ut=function(t,e){at(t,-e-1)},st=function(t,e,r){for(;e<r;e++,r--){var n=t.stack[e],a=new Z(n.type,n.value);V.setobjs2s(t,e,r),V.setobj2s(t,r,a)}},ot=function(t,e,r){var n=t.top-1,a=nt(t,e),u=t.stack[a];I(t,et(u)&&e>c,"index not in the stack"),I(t,(r>=0?r:-r)<=n-a+1,"invalid 'n'");var s=r>=0?n-r:a-r-1;st(t,a,s),st(t,s+1,t.top-1),st(t,a,t.top-1)},lt=function(t,e,r){var n=rt(t,e);rt(t,r).setfrom(n)},it=function(t,e,r){if($("function"==typeof e),tt(r),0===r)t.stack[t.top]=new Z(A,e);else{Q(t,r),I(t,r<=D.MAXUPVAL,"upvalue index too large");for(var n=new q(t,e,r),a=0;a<r;a++)n.upvalue[a].setfrom(t.stack[t.top-r+a]);for(var u=1;u<r;u++)delete t.stack[--t.top];r>0&&--t.top,t.stack[t.top].setclCvalue(n)}W(t)},ct=it,ft=function(t,e){it(t,e,0)},_t=ft,pt=function(t,e,r){var n=F(t,S(r));Q(t,1),V.pushsvalue2s(t,n),I(t,t.top<=t.ci.top,"stack overflow"),z.settable(t,e,t.stack[t.top-1],t.stack[t.top-2]),delete t.stack[--t.top],delete t.stack[--t.top]},vt=function(t,e){pt(t,Y.luaH_getint(t.l_G.l_registry.value,f),e)},ht=function(t,e,r){var n=F(t,S(r));return V.pushsvalue2s(t,n),I(t,t.top<=t.ci.top,"stack overflow"),z.luaV_gettable(t,e,t.stack[t.top-1],t.top-1),t.stack[t.top-1].ttnov()},Lt=function(t,e,r){var n=rt(t,e);return tt(r),I(t,n.ttistable(),"table expected"),V.pushobj2s(t,Y.luaH_getint(n.value,r)),I(t,t.top<=t.ci.top,"stack overflow"),t.stack[t.top-1].ttnov()},dt=function(t,e,r){var n=new V.TValue(U,Y.luaH_new(t));t.stack[t.top]=n,W(t)},At=function(t,e,r){switch(tt(r),e.ttype()){case L:var n=e.value;return 1<=r&&r<=n.nupvalues?{name:w("",!0),val:n.upvalue[r-1]}:null;case g:var a=e.value,u=a.p;if(!(1<=r&&r<=u.upvalues.length))return null;var s=u.upvalues[r-1].name;return{name:s?s.getstr():w("(*no name)",!0),val:a.upvals[r-1]};default:return null}},gt=function(t,e){var r=rt(t,e);if(!r.ttisstring()){if(!z.cvt2str(r))return null;V.luaO_tostring(t,r)}return r.svalue()},Tt=gt,xt=function(t,e){return z.tointeger(rt(t,e))},bt=function(t,e){return z.tonumber(rt(t,e))},kt=new WeakMap,Ot=function(t,e){P.luaD_callnoyield(t,e.funcOff,e.nresults)},Et=function(t,e){var r=rt(t,e);return et(r)?r.ttnov():k},mt=w("?"),Ut=function(t,e,r){I(t,r===a||t.ci.top-t.top>=r-e,"results from function overflow current stack size")},Nt=function(t,e,r,n,u){I(t,null===u||!(t.ci.callstatus&B.CIST_LUA),"cannot use continuations inside hooks"),Q(t,e+1),I(t,t.status===y,"cannot do calls on non-normal thread"),Ut(t,e,r);var s=t.top-(e+1);null!==u&&0===t.nny?(t.ci.c_k=u,t.ci.c_ctx=n,P.luaD_call(t,s,r)):P.luaD_callnoyield(t,s,r),r===a&&t.ci.top<t.top&&(t.ci.top=t.top)},Rt=function(t,e,r,n,u,s){var o,l;I(t,null===s||!(t.ci.callstatus&B.CIST_LUA),"cannot use continuations inside hooks"),Q(t,e+1),I(t,t.status===y,"cannot do calls on non-normal thread"),Ut(t,e,r),l=0===n?0:nt(t,n);var i=t.top-(e+1);if(null===s||t.nny>0){var c={funcOff:i,nresults:r};o=P.luaD_pcall(t,Ot,c,i,l)}else{var f=t.ci;f.c_k=s,f.c_ctx=u,f.extra=i,f.c_old_errfunc=t.errfunc,t.errfunc=l,f.callstatus&=~B.CIST_OAH|t.allowhook,f.callstatus|=B.CIST_YPCALL,P.luaD_call(t,i,r),f.callstatus&=~B.CIST_YPCALL,t.errfunc=f.c_old_errfunc,o=y}return r===a&&t.ci.top<t.top&&(t.ci.top=t.top),o},yt=function(t,e,r){var n=rt(t,e);I(t,n.ttisLclosure(),"Lua function expected");var a=n.value;return tt(r),I(t,1<=r&&r<=a.p.upvalues.length,"invalid upvalue index"),{f:a,i:r-1}};t.exports.api_incr_top=W,t.exports.api_checknelems=Q,t.exports.lua_absindex=function(t,e){return e>0||e<=c?e:t.top-t.ci.funcOff+e},t.exports.lua_arith=function(t,e){e!==i&&e!==u?Q(t,2):(Q(t,1),V.pushobj2s(t,t.stack[t.top-1]),I(t,t.top<=t.ci.top,"stack overflow")),V.luaO_arith(t,e,t.stack[t.top-2],t.stack[t.top-1],t.stack[t.top-2]),delete t.stack[--t.top]},t.exports.lua_atpanic=function(t,e){var r=t.l_G.panic;return t.l_G.panic=e,r},t.exports.lua_atnativeerror=function(t,e){var r=t.l_G.atnativeerror;return t.l_G.atnativeerror=e,r},t.exports.lua_call=function(t,e,r){Nt(t,e,r,0,null)},t.exports.lua_callk=Nt,t.exports.lua_checkstack=function(t,e){var r,n=t.ci;I(t,e>=0,"negative 'n'"),t.stack_last-t.top>e?r=!0:t.top+B.EXTRA_STACK>X-e?r=!1:(P.luaD_growstack(t,e),r=!0);return r&&n.top<t.top+e&&(n.top=t.top+e),r},t.exports.lua_compare=function(t,e,r,n){var a=rt(t,e),u=rt(t,r),i=0;if(et(a)&&et(u))switch(n){case s:i=z.luaV_equalobj(t,a,u);break;case l:i=z.luaV_lessthan(t,a,u);break;case o:i=z.luaV_lessequal(t,a,u);break;default:I(t,!1,"invalid option")}return i},t.exports.lua_concat=function(t,e){Q(t,e),e>=2?z.luaV_concat(t,e):0===e&&(V.pushsvalue2s(t,K(t,w("",!0))),I(t,t.top<=t.ci.top,"stack overflow"))},t.exports.lua_copy=lt,t.exports.lua_createtable=dt,t.exports.lua_dump=function(t,e,r,n){Q(t,1);var a=t.stack[t.top-1];return a.ttisLclosure()?C(t,a.value.p,e,r,n):1},t.exports.lua_error=function(t){Q(t,1),M.luaG_errormsg(t)},t.exports.lua_gc=function(){},t.exports.lua_getallocf=function(){return console.warn("lua_getallocf is not available"),0},t.exports.lua_getextraspace=function(){return console.warn("lua_getextraspace is not available"),0},t.exports.lua_getfield=function(t,e,r){return ht(t,rt(t,e),r)},t.exports.lua_getglobal=function(t,e){return ht(t,Y.luaH_getint(t.l_G.l_registry.value,f),e)},t.exports.lua_geti=function(t,e,r){var n=rt(t,e);return tt(r),t.stack[t.top]=new Z(E,r),W(t),z.luaV_gettable(t,n,t.stack[t.top-1],t.top-1),t.stack[t.top-1].ttnov()},t.exports.lua_getmetatable=function(t,e){var r,n=rt(t,e),a=!1;switch(n.ttnov()){case U:case R:r=n.value.metatable;break;default:r=t.l_G.mt[n.ttnov()]}return null!==r&&void 0!==r&&(t.stack[t.top]=new Z(U,r),W(t),a=!0),a},t.exports.lua_gettable=function(t,e){var r=rt(t,e);return z.luaV_gettable(t,r,t.stack[t.top-1],t.top-1),t.stack[t.top-1].ttnov()},t.exports.lua_gettop=function(t){return t.top-(t.ci.funcOff+1)},t.exports.lua_getupvalue=function(t,e,r){var n=At(0,rt(t,e),r);if(n){var a=n.name,u=n.val;return V.pushobj2s(t,u),I(t,t.top<=t.ci.top,"stack overflow"),a}return null},t.exports.lua_getuservalue=function(t,e){var r=rt(t,e);I(t,r.ttisfulluserdata(),"full userdata expected");var n=r.value.uservalue;return t.stack[t.top]=new Z(n.type,n.value),W(t),t.stack[t.top-1].ttnov()},t.exports.lua_insert=function(t,e){ot(t,e,1)},t.exports.lua_isboolean=function(t,e){return Et(t,e)===h},t.exports.lua_iscfunction=function(t,e){var r=rt(t,e);return r.ttislcf(r)||r.ttisCclosure()},t.exports.lua_isfunction=function(t,e){return Et(t,e)===d},t.exports.lua_isinteger=function(t,e){return rt(t,e).ttisinteger()},t.exports.lua_islightuserdata=function(t,e){return Et(t,e)===T},t.exports.lua_isnil=function(t,e){return Et(t,e)===b},t.exports.lua_isnone=function(t,e){return Et(t,e)===k},t.exports.lua_isnoneornil=function(t,e){return Et(t,e)<=0},t.exports.lua_isnumber=function(t,e){return!1!==z.tonumber(rt(t,e))},t.exports.lua_isproxy=function(t,e){var r=kt.get(t);return!!r&&(null===e||e.l_G===r)},t.exports.lua_isstring=function(t,e){var r=rt(t,e);return r.ttisstring()||z.cvt2str(r)},t.exports.lua_istable=function(t,e){return rt(t,e).ttistable()},t.exports.lua_isthread=function(t,e){return Et(t,e)===N},t.exports.lua_isuserdata=function(t,e){var r=rt(t,e);return r.ttisfulluserdata(r)||r.ttislightuserdata()},t.exports.lua_len=function(t,e){var r=rt(t,e),n=new Z;z.luaV_objlen(t,n,r),t.stack[t.top]=n,W(t)},t.exports.lua_load=function(t,e,r,n,a){n=n?S(n):mt,null!==a&&(a=S(a));var u=new J(t,e,r),s=P.luaD_protectedparser(t,u,n,a);if(s===y){var o=t.stack[t.top-1].value;if(o.nupvalues>=1){var l=Y.luaH_getint(t.l_G.l_registry.value,f);o.upvals[0].setfrom(l)}}return s},t.exports.lua_newtable=function(t){dt(t)},t.exports.lua_newuserdata=function(t,e){var r=function(t,e){return new V.Udata(t,e)}(t,e);return t.stack[t.top]=new V.TValue(R,r),W(t),r.data},t.exports.lua_next=function(t,e){var r=rt(t,e);return I(t,r.ttistable(),"table expected"),t.stack[t.top]=new Z,Y.luaH_next(t,r.value,t.top-1)?(W(t),1):(delete t.stack[t.top],delete t.stack[--t.top],0)},t.exports.lua_pcall=function(t,e,r,n){return Rt(t,e,r,n,0,null)},t.exports.lua_pcallk=Rt,t.exports.lua_pop=ut,t.exports.lua_pushboolean=function(t,e){t.stack[t.top]=new Z(h,!!e),W(t)},t.exports.lua_pushcclosure=it,t.exports.lua_pushcfunction=ft,t.exports.lua_pushfstring=function(t,e){e=S(e);for(var r=arguments.length,n=new Array(r>2?r-2:0),a=2;a<r;a++)n[a-2]=arguments[a];return V.luaO_pushvfstring(t,e,n)},t.exports.lua_pushglobaltable=function(t){Lt(t,c,f)},t.exports.lua_pushinteger=function(t,e){tt(e),t.stack[t.top]=new Z(E,e),W(t)},t.exports.lua_pushjsclosure=ct,t.exports.lua_pushjsfunction=_t,t.exports.lua_pushlightuserdata=function(t,e){t.stack[t.top]=new Z(T,e),W(t)},t.exports.lua_pushliteral=function(t,e){if(void 0===e||null===e)t.stack[t.top]=new Z(b,null),t.top++;else{$("string"==typeof e);var r=j(t,e);V.pushsvalue2s(t,r),e=r.getstr()}return I(t,t.top<=t.ci.top,"stack overflow"),e},t.exports.lua_pushlstring=function(t,e,r){var n;return tt(r),0===r?(e=w("",!0),n=K(t,e)):(e=S(e),I(t,e.length>=r,"invalid length to lua_pushlstring"),n=F(t,e.subarray(0,r))),V.pushsvalue2s(t,n),I(t,t.top<=t.ci.top,"stack overflow"),n.value},t.exports.lua_pushnil=function(t){t.stack[t.top]=new Z(b,null),W(t)},t.exports.lua_pushnumber=function(t,e){$("number"==typeof e),t.stack[t.top]=new Z(O,e),W(t)},t.exports.lua_pushstring=function(t,e){if(void 0===e||null===e)t.stack[t.top]=new Z(b,null),t.top++;else{var r=F(t,S(e));V.pushsvalue2s(t,r),e=r.getstr()}return I(t,t.top<=t.ci.top,"stack overflow"),e},t.exports.lua_pushthread=function(t){return t.stack[t.top]=new Z(N,t),W(t),t.l_G.mainthread===t},t.exports.lua_pushvalue=function(t,e){V.pushobj2s(t,rt(t,e)),I(t,t.top<=t.ci.top,"stack overflow")},t.exports.lua_pushvfstring=function(t,e,r){return e=S(e),V.luaO_pushvfstring(t,e,r)},t.exports.lua_rawequal=function(t,e,r){var n=rt(t,e),a=rt(t,r);return et(n)&&et(a)?z.luaV_equalobj(null,n,a):0},t.exports.lua_rawget=function(t,e){var r=rt(t,e);return I(t,r.ttistable(r),"table expected"),V.setobj2s(t,t.top-1,Y.luaH_get(t,r.value,t.stack[t.top-1])),t.stack[t.top-1].ttnov()},t.exports.lua_rawgeti=Lt,t.exports.lua_rawgetp=function(t,e,r){var n=rt(t,e);I(t,n.ttistable(),"table expected");var a=new Z(T,r);return V.pushobj2s(t,Y.luaH_get(t,n.value,a)),I(t,t.top<=t.ci.top,"stack overflow"),t.stack[t.top-1].ttnov()},t.exports.lua_rawlen=function(t,e){var r=rt(t,e);switch(r.ttype()){case m:case x:return r.vslen();case R:return r.value.len;case U:return Y.luaH_getn(r.value);default:return 0}},t.exports.lua_rawset=function(t,e){Q(t,2);var r=rt(t,e);I(t,r.ttistable(),"table expected");var n=t.stack[t.top-2],a=t.stack[t.top-1];Y.luaH_setfrom(t,r.value,n,a),Y.invalidateTMcache(r.value),delete t.stack[--t.top],delete t.stack[--t.top]},t.exports.lua_rawseti=function(t,e,r){tt(r),Q(t,1);var n=rt(t,e);I(t,n.ttistable(),"table expected"),Y.luaH_setint(n.value,r,t.stack[t.top-1]),delete t.stack[--t.top]},t.exports.lua_rawsetp=function(t,e,r){Q(t,1);var n=rt(t,e);I(t,n.ttistable(),"table expected");var a=new Z(T,r),u=t.stack[t.top-1];Y.luaH_setfrom(t,n.value,a,u),delete t.stack[--t.top]},t.exports.lua_register=function(t,e,r){ft(t,r),vt(t,e)},t.exports.lua_remove=function(t,e){ot(t,e,-1),ut(t,1)},t.exports.lua_replace=function(t,e){lt(t,-1,e),ut(t,1)},t.exports.lua_rotate=ot,t.exports.lua_setallocf=function(){return console.warn("lua_setallocf is not available"),0},t.exports.lua_setfield=function(t,e,r){pt(t,rt(t,e),r)},t.exports.lua_setglobal=vt,t.exports.lua_seti=function(t,e,r){tt(r),Q(t,1);var n=rt(t,e);t.stack[t.top]=new Z(E,r),W(t),z.settable(t,n,t.stack[t.top-1],t.stack[t.top-2]),delete t.stack[--t.top],delete t.stack[--t.top]},t.exports.lua_setmetatable=function(t,e){var r;Q(t,1);var n=rt(t,e);switch(t.stack[t.top-1].ttisnil()?r=null:(I(t,t.stack[t.top-1].ttistable(),"table expected"),r=t.stack[t.top-1].value),n.ttnov()){case R:case U:n.value.metatable=r;break;default:t.l_G.mt[n.ttnov()]=r}return delete t.stack[--t.top],!0},t.exports.lua_settable=function(t,e){Q(t,2);var r=rt(t,e);z.settable(t,r,t.stack[t.top-2],t.stack[t.top-1]),delete t.stack[--t.top],delete t.stack[--t.top]},t.exports.lua_settop=at,t.exports.lua_setupvalue=function(t,e,r){var n=rt(t,e);Q(t,1);var a=At(0,n,r);if(a){var u=a.name;return a.val.setfrom(t.stack[t.top-1]),delete t.stack[--t.top],u}return null},t.exports.lua_setuservalue=function(t,e){Q(t,1);var r=rt(t,e);I(t,r.ttisfulluserdata(),"full userdata expected"),r.value.uservalue.setfrom(t.stack[t.top-1]),delete t.stack[--t.top]},t.exports.lua_status=function(t){return t.status},t.exports.lua_stringtonumber=function(t,e){var r=new Z,n=V.luaO_str2num(e,r);return 0!==n&&(t.stack[t.top]=r,W(t)),n},t.exports.lua_toboolean=function(t,e){return!rt(t,e).l_isfalse()},t.exports.lua_tocfunction=function(t,e){var r=rt(t,e);return r.ttislcf()||r.ttisCclosure()?r.value:null},t.exports.lua_todataview=function(t,e){var r=gt(t,e);return new DataView(r.buffer,r.byteOffset,r.byteLength)},t.exports.lua_tointeger=function(t,e){var r=xt(t,e);return!1===r?0:r},t.exports.lua_tointegerx=xt,t.exports.lua_tojsstring=function(t,e){var r=rt(t,e);if(!r.ttisstring()){if(!z.cvt2str(r))return null;V.luaO_tostring(t,r)}return r.jsstring()},t.exports.lua_tolstring=gt,t.exports.lua_tonumber=function(t,e){var r=bt(t,e);return!1===r?0:r},t.exports.lua_tonumberx=bt,t.exports.lua_topointer=function(t,e){var r=rt(t,e);switch(r.ttype()){case U:case g:case L:case A:case N:case R:case T:return r.value;default:return null}},t.exports.lua_toproxy=function(t,e){var r=rt(t,e);return function(t,e,r){var n=function(n){I(n,n instanceof B.lua_State&&t===n.l_G,"must be from same global state"),n.stack[n.top]=new Z(e,r),W(n)};return kt.set(n,t),n}(t.l_G,r.type,r.value)},t.exports.lua_tostring=Tt,t.exports.lua_tothread=function(t,e){var r=rt(t,e);return r.ttisthread()?r.value:null},t.exports.lua_touserdata=function(t,e){var r=rt(t,e);switch(r.ttnov()){case R:return r.value.data;case T:return r.value;default:return null}},t.exports.lua_type=Et,t.exports.lua_typename=function(t,e){return I(t,k<=e&&e<v,"invalid tag"),H.ttypename(e)},t.exports.lua_upvalueid=function(t,e,r){var n=rt(t,e);switch(n.ttype()){case g:var a=yt(t,e,r);return a.f.upvals[a.i];case L:var u=n.value;return I(t,(0|r)===r&&r>0&&r<=u.nupvalues,"invalid upvalue index"),u.upvalue[r-1];default:return I(t,!1,"closure expected"),null}},t.exports.lua_upvaluejoin=function(t,e,r,n,a){var u=yt(t,e,r),s=yt(t,n,a),o=s.f.upvals[s.i];u.f.upvals[u.i]=o},t.exports.lua_version=function(t){return null===t?_:t.l_G.version},t.exports.lua_xmove=function(t,e,r){if(t!==e){Q(t,r),I(t,t.l_G===e.l_G,"moving among independent states"),I(t,e.ci.top-e.top>=r,"stack overflow"),t.top-=r;for(var n=0;n<r;n++)e.stack[e.top]=new V.TValue,V.setobj2s(e,e.top,t.stack[t.top+n]),delete t.stack[t.top+n],e.top++}}},function(t,e,r){"use strict";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var u=r(4).lua_assert,s=function(){function t(e,r,n){a(this,t),this.L=e,u("function"==typeof r,"ZIO requires a reader"),this.reader=r,this.data=n,this.n=0,this.buffer=null,this.off=0}return function(t,e,r){e&&n(t.prototype,e),r&&n(t,r)}(t,[{key:"zgetc",value:function(){return this.n-- >0?this.buffer[this.off++]:o(this)}}]),t}(),o=function(t){var e=t.reader(t.L,t.data);if(null===e)return-1;u(e instanceof Uint8Array,"Should only load binary of array of bytes");var r=e.length;return 0===r?-1:(t.buffer=e,t.off=0,t.n=r-1,t.buffer[t.off++])};t.exports.EOZ=-1,t.exports.luaZ_buffer=function(t){return t.buffer.subarray(0,t.n)},t.exports.luaZ_buffremove=function(t,e){t.n-=e},t.exports.luaZ_fill=o,t.exports.luaZ_read=function(t,e,r,n){for(;n;){if(0===t.n){if(-1===o(t))return n;t.n++,t.off--}for(var a=n<=t.n?n:t.n,u=0;u<a;u++)e[r++]=t.buffer[t.off++];t.n-=a,0===t.n&&(t.buffer=null),n-=a}return 0},t.exports.luaZ_resetbuffer=function(t){t.n=0},t.exports.luaZ_resizebuffer=function(t,e,r){var n=new Uint8Array(r);e.buffer&&n.set(e.buffer),e.buffer=n},t.exports.MBuffer=function t(){a(this,t),this.buffer=null,this.n=0},t.exports.ZIO=s},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(1),u=a.constant_types,s=u.LUA_TBOOLEAN,o=u.LUA_TLNGSTR,l=a.thread_status.LUA_ERRSYNTAX,i=a.to_luastring,c=r(4),f=c.LUA_MINBUFFER,_=c.MAX_INT,p=c.lua_assert,v=r(11),h=r(8),L=r(22),d=L.lisdigit,A=L.lislalnum,g=L.lislalpha,T=L.lisspace,x=L.lisxdigit,b=r(6),k=r(10),O=k.luaS_bless,E=k.luaS_hash,m=k.luaS_hashlongstr,U=k.luaS_new,N=r(9),R=r(20),y=R.EOZ,S=R.luaZ_buffer,w=R.luaZ_buffremove,I=R.luaZ_resetbuffer,M=R.luaZ_resizebuffer,P=i("_ENV",!0),C={TK_AND:257,TK_BREAK:258,TK_DO:259,TK_ELSE:260,TK_ELSEIF:261,TK_END:262,TK_FALSE:263,TK_FOR:264,TK_FUNCTION:265,TK_GOTO:266,TK_IF:267,TK_IN:268,TK_LOCAL:269,TK_NIL:270,TK_NOT:271,TK_OR:272,TK_REPEAT:273,TK_RETURN:274,TK_THEN:275,TK_TRUE:276,TK_UNTIL:277,TK_WHILE:278,TK_IDIV:279,TK_CONCAT:280,TK_DOTS:281,TK_EQ:282,TK_GE:283,TK_LE:284,TK_NE:285,TK_SHL:286,TK_SHR:287,TK_DBCOLON:288,TK_EOS:289,TK_FLT:290,TK_INT:291,TK_NAME:292,TK_STRING:293},D=["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while","//","..","...","==",">=","<=","~=","<<",">>","::","<eof>","<number>","<integer>","<name>","<string>"].map(function(t,e){return i(t)}),V=function t(){n(this,t),this.r=NaN,this.i=NaN,this.ts=null},B=function t(){n(this,t),this.token=NaN,this.seminfo=new V},G=function(t,e){var r=t.buff;if(r.n+1>r.buffer.length){r.buffer.length>=_/2&&W(t,i("lexical element too long",!0),0);var n=2*r.buffer.length;M(t.L,r,n)}r.buffer[r.n++]=e<0?255+e+1:e},K=function(t,e){if(e<257)return b.luaO_pushfstring(t.L,i("'%c'",!0),e);var r=D[e-257];return e<289?b.luaO_pushfstring(t.L,i("'%s'",!0),r):r},F=function(t){return 10===t.current||13===t.current},j=function(t){t.current=t.z.zgetc()},H=function(t){G(t,t.current),j(t)},X=new b.TValue(s,!0),z=function(t,e){var r=t.L,n=U(r,e),a=t.h.strong.get(m(n));if(a)n=a.key.tsvalue();else{var u=new b.TValue(o,n);N.luaH_setfrom(r,t.h,u,X)}return n},Y=function(t){var e=t.current;p(F(t)),j(t),F(t)&&t.current!==e&&j(t),++t.linenumber>=_&&W(t,i("chunk has too many lines",!0),0)},J=function(t,e){return t.current===e&&(j(t),!0)},Z=function(t,e){return(t.current===e[0].charCodeAt(0)||t.current===e[1].charCodeAt(0))&&(H(t),!0)},q=function(t,e){var r="Ee",n=t.current;for(p(d(t.current)),H(t),48===n&&Z(t,"xX")&&(r="Pp");;)if(Z(t,r)&&Z(t,"-+"),x(t.current))H(t);else{if(46!==t.current)break;H(t)}var a=new b.TValue;return 0===b.luaO_str2num(S(t.buff),a)&&W(t,i("malformed number",!0),290),a.ttisinteger()?(e.i=a.value,291):(p(a.ttisfloat()),e.r=a.value,290)},W=function(t,e,r){e=v.luaG_addinfo(t.L,e,t.source,t.linenumber),r&&b.luaO_pushfstring(t.L,i("%s near %s"),e,function(t,e){switch(e){case 292:case 293:case 290:case 291:return b.luaO_pushfstring(t.L,i("'%s'",!0),S(t.buff));default:return K(t,e)}}(t,r)),h.luaD_throw(t.L,l)},Q=function(t){var e=0,r=t.current;for(p(91===r||93===r),H(t);61===t.current;)H(t),e++;return t.current===r?e:-e-1},$=function(t,e,r){var n=t.linenumber;H(t),F(t)&&Y(t);for(var a=!1;!a;)switch(t.current){case y:var u="unfinished long ".concat(e?"string":"comment"," (starting at line ").concat(n,")");W(t,i(u),289);break;case 93:Q(t)===r&&(H(t),a=!0);break;case 10:case 13:G(t,10),Y(t),e||I(t.buff);break;default:e?H(t):j(t)}e&&(e.ts=z(t,t.buff.buffer.subarray(2+r,t.buff.n-(2+r))))},tt=function(t,e,r){e||(t.current!==y&&H(t),W(t,r,293))},et=function(t){return H(t),tt(t,x(t.current),i("hexadecimal digit expected",!0)),b.luaO_hexavalue(t.current)},rt=function(t){var e=et(t);return e=(e<<4)+et(t),w(t.buff,2),e},nt=function(t){for(var e=new Uint8Array(b.UTF8BUFFSZ),r=b.luaO_utf8esc(e,function(t){var e=4;H(t),tt(t,123===t.current,i("missing '{'",!0));var r=et(t);for(H(t);x(t.current);)e++,r=(r<<4)+b.luaO_hexavalue(t.current),tt(t,r<=1114111,i("UTF-8 value too large",!0)),H(t);return tt(t,125===t.current,i("missing '}'",!0)),j(t),w(t.buff,e),r}(t));r>0;r--)G(t,e[b.UTF8BUFFSZ-r])},at=function(t){var e,r=0;for(e=0;e<3&&d(t.current);e++)r=10*r+t.current-48,H(t);return tt(t,r<=255,i("decimal escape too large",!0)),w(t.buff,e),r},ut=function(t,e,r){for(H(t);t.current!==e;)switch(t.current){case y:W(t,i("unfinished string",!0),289);break;case 10:case 13:W(t,i("unfinished string",!0),293);break;case 92:H(t);var n=void 0,a=void 0;switch(t.current){case 97:a=7,n="read_save";break;case 98:a=8,n="read_save";break;case 102:a=12,n="read_save";break;case 110:a=10,n="read_save";break;case 114:a=13,n="read_save";break;case 116:a=9,n="read_save";break;case 118:a=11,n="read_save";break;case 120:a=rt(t),n="read_save";break;case 117:nt(t),n="no_save";break;case 10:case 13:Y(t),a=10,n="only_save";break;case 92:case 34:case 39:a=t.current,n="read_save";break;case y:n="no_save";break;case 122:for(w(t.buff,1),j(t);T(t.current);)F(t)?Y(t):j(t);n="no_save";break;default:tt(t,d(t.current),i("invalid escape sequence",!0)),a=at(t),n="only_save"}"read_save"===n&&j(t),"read_save"!==n&&"only_save"!==n||(w(t.buff,1),G(t,a));break;default:H(t)}H(t),r.ts=z(t,t.buff.buffer.subarray(1,t.buff.n-1))},st=Object.create(null);D.forEach(function(t,e){return st[E(t)]=e});var ot=function(t,e){for(I(t.buff);;)switch(p("number"==typeof t.current),t.current){case 10:case 13:Y(t);break;case 32:case 12:case 9:case 11:j(t);break;case 45:if(j(t),45!==t.current)return 45;if(j(t),91===t.current){var r=Q(t);if(I(t.buff),r>=0){$(t,null,r),I(t.buff);break}}for(;!F(t)&&t.current!==y;)j(t);break;case 91:var n=Q(t);return n>=0?($(t,e,n),293):(-1!==n&&W(t,i("invalid long string delimiter",!0),293),91);case 61:return j(t),J(t,61)?282:61;case 60:return j(t),J(t,61)?284:J(t,60)?286:60;case 62:return j(t),J(t,61)?283:J(t,62)?287:62;case 47:return j(t),J(t,47)?279:47;case 126:return j(t),J(t,61)?285:126;case 58:return j(t),J(t,58)?288:58;case 34:case 39:return ut(t,t.current,e),293;case 46:return H(t),J(t,46)?J(t,46)?281:280:d(t.current)?q(t,e):46;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return q(t,e);case y:return 289;default:if(g(t.current)){do{H(t)}while(A(t.current));var a=z(t,S(t.buff));e.ts=a;var u=st[m(a)];return void 0!==u&&u<=22?u+257:292}var s=t.current;return j(t),s}};t.exports.FIRST_RESERVED=257,t.exports.LUA_ENV=P,t.exports.LexState=function t(){n(this,t),this.current=NaN,this.linenumber=NaN,this.lastline=NaN,this.t=new B,this.lookahead=new B,this.fs=null,this.L=null,this.z=null,this.buff=null,this.h=null,this.dyd=null,this.source=null,this.envn=null},t.exports.RESERVED=C,t.exports.isreserved=function(t){var e=st[m(t)];return void 0!==e&&e<=22},t.exports.luaX_lookahead=function(t){return p(289===t.lookahead.token),t.lookahead.token=ot(t,t.lookahead.seminfo),t.lookahead.token},t.exports.luaX_newstring=z,t.exports.luaX_next=function(t){t.lastline=t.linenumber,289!==t.lookahead.token?(t.t.token=t.lookahead.token,t.t.seminfo.i=t.lookahead.seminfo.i,t.t.seminfo.r=t.lookahead.seminfo.r,t.t.seminfo.ts=t.lookahead.seminfo.ts,t.lookahead.token=289):t.t.token=ot(t,t.t.seminfo)},t.exports.luaX_setinput=function(t,e,r,n,a){e.t={token:0,seminfo:new V},e.L=t,e.current=a,e.lookahead={token:289,seminfo:new V},e.z=r,e.fs=null,e.linenumber=1,e.lastline=1,e.source=n,e.envn=O(t,P),M(t,e.buff,f)},t.exports.luaX_syntaxerror=function(t,e){W(t,e,t.t.token)},t.exports.luaX_token2str=K,t.exports.luaX_tokens=D},function(t,e,r){"use strict";var n=(0,r(1).luastring_of)(0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,22,22,22,22,22,22,22,22,22,22,4,4,4,4,4,4,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);t.exports.lisdigit=function(t){return 0!=(2&n[t+1])},t.exports.lislalnum=function(t){return 0!=(3&n[t+1])},t.exports.lislalpha=function(t){return 0!=(1&n[t+1])},t.exports.lisprint=function(t){return 0!=(4&n[t+1])},t.exports.lisspace=function(t){return 0!=(8&n[t+1])},t.exports.lisxdigit=function(t){return 0!=(16&n[t+1])}},function(t,e,r){"use strict";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var u=r(1),s=u.LUA_MULTRET,o=u.to_luastring,l=r(35),i=l.BinOpr,c=i.OPR_ADD,f=i.OPR_AND,_=i.OPR_BAND,p=i.OPR_BOR,v=i.OPR_BXOR,h=i.OPR_CONCAT,L=i.OPR_DIV,d=i.OPR_EQ,A=i.OPR_GE,g=i.OPR_GT,T=i.OPR_IDIV,x=i.OPR_LE,b=i.OPR_LT,k=i.OPR_MOD,O=i.OPR_MUL,E=i.OPR_NE,m=i.OPR_NOBINOPR,U=i.OPR_OR,N=i.OPR_POW,R=i.OPR_SHL,y=i.OPR_SHR,S=i.OPR_SUB,w=l.UnOpr,I=w.OPR_BNOT,M=w.OPR_LEN,P=w.OPR_MINUS,C=w.OPR_NOT,D=w.OPR_NOUNOPR,V=l.NO_JUMP,B=l.getinstruction,G=l.luaK_checkstack,K=l.luaK_codeABC,F=l.luaK_codeABx,j=l.luaK_codeAsBx,H=l.luaK_codek,X=l.luaK_concat,z=l.luaK_dischargevars,Y=l.luaK_exp2RK,J=l.luaK_exp2anyreg,Z=l.luaK_exp2anyregup,q=l.luaK_exp2nextreg,W=l.luaK_exp2val,Q=l.luaK_fixline,$=l.luaK_getlabel,tt=l.luaK_goiffalse,et=l.luaK_goiftrue,rt=l.luaK_indexed,nt=l.luaK_infix,at=l.luaK_intK,ut=l.luaK_jump,st=l.luaK_jumpto,ot=l.luaK_nil,lt=l.luaK_patchclose,it=l.luaK_patchlist,ct=l.luaK_patchtohere,ft=l.luaK_posfix,_t=l.luaK_prefix,pt=l.luaK_reserveregs,vt=l.luaK_ret,ht=l.luaK_self,Lt=l.luaK_setlist,dt=l.luaK_setmultret,At=l.luaK_setoneret,gt=l.luaK_setreturns,Tt=l.luaK_storevar,xt=l.luaK_stringK,bt=r(8),kt=r(13),Ot=r(21),Et=r(4),mt=Et.LUAI_MAXCCALLS,Ut=Et.MAX_INT,Nt=Et.lua_assert,Rt=r(6),yt=r(16),St=yt.OpCodesI,wt=St.OP_CALL,It=St.OP_CLOSURE,Mt=St.OP_FORLOOP,Pt=St.OP_FORPREP,Ct=St.OP_GETUPVAL,Dt=St.OP_MOVE,Vt=St.OP_NEWTABLE,Bt=St.OP_SETTABLE,Gt=St.OP_TAILCALL,Kt=St.OP_TFORCALL,Ft=St.OP_TFORLOOP,jt=St.OP_VARARG,Ht=yt.LFIELDS_PER_FLUSH,Xt=yt.SETARG_B,zt=yt.SETARG_C,Yt=yt.SET_OPCODE,Jt=r(10),Zt=Jt.luaS_eqlngstr,qt=Jt.luaS_new,Wt=Jt.luaS_newliteral,Qt=r(9),$t=kt.Proto,te=Ot.RESERVED,ee=function(t){return t===ae.VCALL||t===ae.VVARARG},re=function(t,e){return Zt(t,e)},ne=function t(){a(this,t),this.previous=null,this.firstlabel=NaN,this.firstgoto=NaN,this.nactvar=NaN,this.upval=NaN,this.isloop=NaN},ae={VVOID:0,VNIL:1,VTRUE:2,VFALSE:3,VK:4,VKFLT:5,VKINT:6,VNONRELOC:7,VLOCAL:8,VUPVAL:9,VINDEXED:10,VJMP:11,VRELOCABLE:12,VCALL:13,VVARARG:14},ue=function(){function t(){a(this,t),this.k=NaN,this.u={ival:NaN,nval:NaN,info:NaN,ind:{idx:NaN,t:NaN,vt:NaN}},this.t=NaN,this.f=NaN}return function(t,e,r){e&&n(t.prototype,e),r&&n(t,r)}(t,[{key:"to",value:function(t){this.k=t.k,this.u=t.u,this.t=t.t,this.f=t.f}}]),t}(),se=function t(){a(this,t),this.f=null,this.prev=null,this.ls=null,this.bl=null,this.pc=NaN,this.lasttarget=NaN,this.jpc=NaN,this.nk=NaN,this.np=NaN,this.firstlocal=NaN,this.nlocvars=NaN,this.nactvar=NaN,this.nups=NaN,this.freereg=NaN},oe=function t(){a(this,t),this.arr=[],this.n=NaN,this.size=NaN},le=function(t,e){t.t.token=0,Ot.luaX_syntaxerror(t,e)},ie=function(t,e){Ot.luaX_syntaxerror(t,Rt.luaO_pushfstring(t.L,o("%s expected",!0),Ot.luaX_token2str(t,e)))},ce=function(t,e,r,n){e>r&&function(t,e,r){var n=t.ls.L,a=t.f.linedefined,u=0===a?o("main function",!0):Rt.luaO_pushfstring(n,o("function at line %d",!0),a),s=Rt.luaO_pushfstring(n,o("too many %s (limit is %d) in %s",!0),r,e,u);Ot.luaX_syntaxerror(t.ls,s)}(t,r,n)},fe=function(t,e){return t.t.token===e&&(Ot.luaX_next(t),!0)},_e=function(t,e){t.t.token!==e&&ie(t,e)},pe=function(t,e){_e(t,e),Ot.luaX_next(t)},ve=function(t,e,r){e||Ot.luaX_syntaxerror(t,r)},he=function(t,e,r,n){fe(t,e)||(n===t.linenumber?ie(t,e):Ot.luaX_syntaxerror(t,Rt.luaO_pushfstring(t.L,o("%s expected (to close %s at line %d)"),Ot.luaX_token2str(t,e),Ot.luaX_token2str(t,r),n)))},Le=function(t){_e(t,te.TK_NAME);var e=t.t.seminfo.ts;return Ot.luaX_next(t),e},de=function(t,e,r){t.f=t.t=V,t.k=e,t.u.info=r},Ae=function(t,e,r){de(e,ae.VK,xt(t.fs,r))},ge=function(t,e){Ae(t,e,Le(t))},Te=function(t,e){var r=t.fs,n=t.dyd,u=function(t,e){var r=t.fs,n=r.f;return n.locvars[r.nlocvars]=new Rt.LocVar,n.locvars[r.nlocvars].varname=e,r.nlocvars++}(t,e);ce(r,n.actvar.n+1-r.firstlocal,200,o("local variables",!0)),n.actvar.arr[n.actvar.n]=new function t(){a(this,t),this.idx=NaN},n.actvar.arr[n.actvar.n].idx=u,n.actvar.n++},xe=function(t,e){Te(t,Ot.luaX_newstring(t,o(e,!0)))},be=function(t,e){var r=t.ls.dyd.actvar.arr[t.firstlocal+e].idx;return Nt(r<t.nlocvars),t.f.locvars[r]},ke=function(t,e){var r=t.fs;for(r.nactvar=r.nactvar+e;e;e--)be(r,r.nactvar-e).startpc=r.pc},Oe=function(t,e,r){var n=t.f;return ce(t,t.nups+1,kt.MAXUPVAL,o("upvalues",!0)),n.upvalues[t.nups]={instack:r.k===ae.VLOCAL,idx:r.u.info,name:e},t.nups++},Ee=function t(e,r,n,a){if(null===e)de(n,ae.VVOID,0);else{var u=function(t,e){for(var r=t.nactvar-1;r>=0;r--)if(re(e,be(t,r).varname))return r;return-1}(e,r);if(u>=0)de(n,ae.VLOCAL,u),a||function(t,e){for(var r=t.bl;r.nactvar>e;)r=r.previous;r.upval=1}(e,u);else{var s=function(t,e){for(var r=t.f.upvalues,n=0;n<t.nups;n++)if(re(r[n].name,e))return n;return-1}(e,r);if(s<0){if(t(e.prev,r,n,0),n.k===ae.VVOID)return;s=Oe(e,r,n)}de(n,ae.VUPVAL,s)}}},me=function(t,e){var r=Le(t),n=t.fs;if(Ee(n,r,e,1),e.k===ae.VVOID){var a=new ue;Ee(n,t.envn,e,1),Nt(e.k!==ae.VVOID),Ae(t,a,r),rt(n,e,a)}},Ue=function(t,e,r,n){var a=t.fs,u=e-r;if(ee(n.k))++u<0&&(u=0),gt(a,n,u),u>1&&pt(a,u-1);else if(n.k!==ae.VVOID&&q(a,n),u>0){var s=a.freereg;pt(a,u),ot(a,s,u)}r>e&&(t.fs.freereg-=r-e)},Ne=function(t){var e=t.L;++e.nCcalls,ce(t.fs,e.nCcalls,mt,o("JS levels",!0))},Re=function(t){return t.L.nCcalls--},ye=function(t,e,r){var n=t.fs,a=t.dyd.gt,u=a.arr[e];if(Nt(re(u.name,r.name)),u.nactvar<r.nactvar){var s=be(n,u.nactvar).varname,l=Rt.luaO_pushfstring(t.L,o("<goto %s> at line %d jumps into the scope of local '%s'"),u.name.getstr(),u.line,s.getstr());le(t,l)}it(n,u.pc,r.pc);for(var i=e;i<a.n-1;i++)a.arr[i]=a.arr[i+1];a.n--},Se=function(t,e){for(var r=t.fs.bl,n=t.dyd,a=n.gt.arr[e],u=r.firstlabel;u<n.label.n;u++){var s=n.label.arr[u];if(re(s.name,a.name))return a.nactvar>s.nactvar&&(r.upval||n.label.n>r.firstlabel)&&lt(t.fs,a.pc,s.nactvar),ye(t,e,s),!0}return!1},we=function(t,e,r,n,u){var s=e.n;return e.arr[s]=new function t(){a(this,t),this.name=null,this.pc=NaN,this.line=NaN,this.nactvar=NaN},e.arr[s].name=r,e.arr[s].line=n,e.arr[s].nactvar=t.fs.nactvar,e.arr[s].pc=u,e.n=s+1,s},Ie=function(t,e){for(var r=t.dyd.gt,n=t.fs.bl.firstgoto;n<r.n;)re(r.arr[n].name,e.name)?ye(t,n,e):n++},Me=function(t,e,r){e.isloop=r,e.nactvar=t.nactvar,e.firstlabel=t.ls.dyd.label.n,e.firstgoto=t.ls.dyd.gt.n,e.upval=0,e.previous=t.bl,t.bl=e,Nt(t.freereg===t.nactvar)},Pe=function(t,e,r){e.prev=t.fs,e.ls=t,t.fs=e,e.pc=0,e.lasttarget=0,e.jpc=V,e.freereg=0,e.nk=0,e.np=0,e.nups=0,e.nlocvars=0,e.nactvar=0,e.firstlocal=t.dyd.actvar.n,e.bl=null;var n=e.f;n.source=t.source,n.maxstacksize=2,Me(e,r,!1)},Ce=function(t){var e=t.bl,r=t.ls;if(e.previous&&e.upval){var n=ut(t);lt(t,n,e.nactvar),ct(t,n)}e.isloop&&function(t){var e=Wt(t.L,"break"),r=we(t,t.dyd.label,e,0,t.fs.pc);Ie(t,t.dyd.label.arr[r])}(r),t.bl=e.previous,function(t,e){for(t.ls.dyd.actvar.n-=t.nactvar-e;t.nactvar>e;)be(t,--t.nactvar).endpc=t.pc}(t,e.nactvar),Nt(e.nactvar===t.nactvar),t.freereg=t.nactvar,r.dyd.label.n=e.firstlabel,e.previous?function(t,e){for(var r=e.firstgoto,n=t.ls.dyd.gt;r<n.n;){var a=n.arr[r];a.nactvar>e.nactvar&&(e.upval&&lt(t,a.pc,e.nactvar),a.nactvar=e.nactvar),Se(t.ls,r)||r++}}(t,e):e.firstgoto<r.dyd.gt.n&&function(t,e){var r=Ot.isreserved(e.name)?"<%s> at line %d not inside a loop":"no visible label '%s' for <goto> at line %d";r=Rt.luaO_pushfstring(t.L,o(r),e.name.getstr(),e.line),le(t,r)}(r,r.dyd.gt.arr[e.firstgoto])},De=function(t){var e=t.fs;vt(e,0,0),Ce(e),Nt(null===e.bl),t.fs=e.prev},Ve=function(t,e){switch(t.t.token){case te.TK_ELSE:case te.TK_ELSEIF:case te.TK_END:case te.TK_EOS:return!0;case te.TK_UNTIL:return e;default:return!1}},Be=function(t){for(;!Ve(t,1);){if(t.t.token===te.TK_RETURN)return void fr(t);fr(t)}},Ge=function(t,e){var r=t.fs,n=new ue;Z(r,e),Ot.luaX_next(t),ge(t,n),rt(r,e,n)},Ke=function(t,e){Ot.luaX_next(t),$e(t,e),W(t.fs,e),pe(t,93)},Fe=function(t,e){var r=t.fs,n=t.fs.freereg,a=new ue,u=new ue;t.t.token===te.TK_NAME?(ce(r,e.nh,Ut,o("items in a constructor",!0)),ge(t,a)):Ke(t,a),e.nh++,pe(t,61);var s=Y(r,a);$e(t,u),K(r,Bt,e.t.u.info,s,Y(r,u)),r.freereg=n},je=function(t,e){e.v.k!==ae.VVOID&&(q(t,e.v),e.v.k=ae.VVOID,e.tostore===Ht&&(Lt(t,e.t.u.info,e.na,e.tostore),e.tostore=0))},He=function(t,e){$e(t,e.v),ce(t.fs,e.na,Ut,o("items in a constructor",!0)),e.na++,e.tostore++},Xe=function(t,e){switch(t.t.token){case te.TK_NAME:61!==Ot.luaX_lookahead(t)?He(t,e):Fe(t,e);break;case 91:Fe(t,e);break;default:He(t,e)}},ze=function(t,e){var r=t.fs,n=t.linenumber,u=K(r,Vt,0,0,0),o=new function t(){a(this,t),this.v=new ue,this.t=new ue,this.nh=NaN,this.na=NaN,this.tostore=NaN};o.na=o.nh=o.tostore=0,o.t=e,de(e,ae.VRELOCABLE,u),de(o.v,ae.VVOID,0),q(t.fs,e),pe(t,123);do{if(Nt(o.v.k===ae.VVOID||o.tostore>0),125===t.t.token)break;je(r,o),Xe(t,o)}while(fe(t,44)||fe(t,59));he(t,125,123,n),function(t,e){0!==e.tostore&&(ee(e.v.k)?(dt(t,e.v),Lt(t,e.t.u.info,e.na,s),e.na--):(e.v.k!==ae.VVOID&&q(t,e.v),Lt(t,e.t.u.info,e.na,e.tostore)))}(r,o),Xt(r.f.code[u],Rt.luaO_int2fb(o.na)),zt(r.f.code[u],Rt.luaO_int2fb(o.nh))},Ye=function(t,e,r,n){var a=new se,u=new ne;a.f=function(t){var e=t.L,r=new $t(e),n=t.fs;return n.f.p[n.np++]=r,r}(t),a.f.linedefined=n,Pe(t,a,u),pe(t,40),r&&(xe(t,"self"),ke(t,1)),function(t){var e=t.fs,r=e.f,n=0;if(r.is_vararg=!1,41!==t.t.token)do{switch(t.t.token){case te.TK_NAME:Te(t,Le(t)),n++;break;case te.TK_DOTS:Ot.luaX_next(t),r.is_vararg=!0;break;default:Ot.luaX_syntaxerror(t,o("<name> or '...' expected",!0))}}while(!r.is_vararg&&fe(t,44));ke(t,n),r.numparams=e.nactvar,pt(e,e.nactvar)}(t),pe(t,41),Be(t),a.f.lastlinedefined=t.linenumber,he(t,te.TK_END,te.TK_FUNCTION,n),function(t,e){var r=t.fs.prev;de(e,ae.VRELOCABLE,F(r,It,0,r.np-1)),q(r,e)}(t,e),De(t)},Je=function(t,e){var r=1;for($e(t,e);fe(t,44);)q(t.fs,e),$e(t,e),r++;return r},Ze=function(t,e,r){var n,a=t.fs,u=new ue;switch(t.t.token){case 40:Ot.luaX_next(t),41===t.t.token?u.k=ae.VVOID:(Je(t,u),dt(a,u)),he(t,41,40,r);break;case 123:ze(t,u);break;case te.TK_STRING:Ae(t,u,t.t.seminfo.ts),Ot.luaX_next(t);break;default:Ot.luaX_syntaxerror(t,o("function arguments expected",!0))}Nt(e.k===ae.VNONRELOC);var l=e.u.info;ee(u.k)?n=s:(u.k!==ae.VVOID&&q(a,u),n=a.freereg-(l+1)),de(e,ae.VCALL,K(a,wt,l,n+1,2)),Q(a,r),a.freereg=l+1},qe=function(t,e){var r=t.fs,n=t.linenumber;for(!function(t,e){switch(t.t.token){case 40:var r=t.linenumber;return Ot.luaX_next(t),$e(t,e),he(t,41,40,r),void z(t.fs,e);case te.TK_NAME:return void me(t,e);default:Ot.luaX_syntaxerror(t,o("unexpected symbol",!0))}}(t,e);;)switch(t.t.token){case 46:Ge(t,e);break;case 91:var a=new ue;Z(r,e),Ke(t,a),rt(r,e,a);break;case 58:var u=new ue;Ot.luaX_next(t),ge(t,u),ht(r,e,u),Ze(t,e,n);break;case 40:case te.TK_STRING:case 123:q(r,e),Ze(t,e,n);break;default:return}},We=[{left:10,right:10},{left:10,right:10},{left:11,right:11},{left:11,right:11},{left:14,right:13},{left:11,right:11},{left:11,right:11},{left:6,right:6},{left:4,right:4},{left:5,right:5},{left:7,right:7},{left:7,right:7},{left:9,right:8},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:3,right:3},{left:2,right:2},{left:1,right:1}],Qe=function t(e,r,n){Ne(e);var a=function(t){switch(t){case te.TK_NOT:return C;case 45:return P;case 126:return I;case 35:return M;default:return D}}(e.t.token);if(a!==D){var u=e.linenumber;Ot.luaX_next(e),t(e,r,12),_t(e.fs,a,r,u)}else!function(t,e){switch(t.t.token){case te.TK_FLT:de(e,ae.VKFLT,0),e.u.nval=t.t.seminfo.r;break;case te.TK_INT:de(e,ae.VKINT,0),e.u.ival=t.t.seminfo.i;break;case te.TK_STRING:Ae(t,e,t.t.seminfo.ts);break;case te.TK_NIL:de(e,ae.VNIL,0);break;case te.TK_TRUE:de(e,ae.VTRUE,0);break;case te.TK_FALSE:de(e,ae.VFALSE,0);break;case te.TK_DOTS:var r=t.fs;ve(t,r.f.is_vararg,o("cannot use '...' outside a vararg function",!0)),de(e,ae.VVARARG,K(r,jt,0,1,0));break;case 123:return void ze(t,e);case te.TK_FUNCTION:return Ot.luaX_next(t),void Ye(t,e,0,t.linenumber);default:return void qe(t,e)}Ot.luaX_next(t)}(e,r);for(var s=function(t){switch(t){case 43:return c;case 45:return S;case 42:return O;case 37:return k;case 94:return N;case 47:return L;case te.TK_IDIV:return T;case 38:return _;case 124:return p;case 126:return v;case te.TK_SHL:return R;case te.TK_SHR:return y;case te.TK_CONCAT:return h;case te.TK_NE:return E;case te.TK_EQ:return d;case 60:return b;case te.TK_LE:return x;case 62:return g;case te.TK_GE:return A;case te.TK_AND:return f;case te.TK_OR:return U;default:return m}}(e.t.token);s!==m&&We[s].left>n;){var l=new ue,i=e.linenumber;Ot.luaX_next(e),nt(e.fs,s,r);var w=t(e,l,We[s].right);ft(e.fs,s,r,l,i),s=w}return Re(e),s},$e=function(t,e){Qe(t,e,0)},tr=function(t){var e=t.fs,r=new ne;Me(e,r,0),Be(t),Ce(e)},er=function t(){a(this,t),this.prev=null,this.v=new ue},rr=function t(e,r,n){var a=new ue;if(ve(e,function(t){return ae.VLOCAL<=t&&t<=ae.VINDEXED}(r.v.k),o("syntax error",!0)),fe(e,44)){var u=new er;u.prev=r,qe(e,u.v),u.v.k!==ae.VINDEXED&&function(t,e,r){for(var n=t.fs,a=n.freereg,u=!1;e;e=e.prev)e.v.k===ae.VINDEXED&&(e.v.u.ind.vt===r.k&&e.v.u.ind.t===r.u.info&&(u=!0,e.v.u.ind.vt=ae.VLOCAL,e.v.u.ind.t=a),r.k===ae.VLOCAL&&e.v.u.ind.idx===r.u.info&&(u=!0,e.v.u.ind.idx=a));if(u){var s=r.k===ae.VLOCAL?Dt:Ct;K(n,s,a,r.u.info,0),pt(n,1)}}(e,r,u.v),ce(e.fs,n+e.L.nCcalls,mt,o("JS levels",!0)),t(e,u,n+1)}else{pe(e,61);var s=Je(e,a);if(s===n)return At(e.fs,a),void Tt(e.fs,r.v,a);Ue(e,n,s,a)}de(a,ae.VNONRELOC,e.fs.freereg-1),Tt(e.fs,r.v,a)},nr=function(t){var e=new ue;return $e(t,e),e.k===ae.VNIL&&(e.k=ae.VFALSE),et(t.fs,e),e.f},ar=function(t,e){var r,n=t.linenumber;fe(t,te.TK_GOTO)?r=Le(t):(Ot.luaX_next(t),r=Wt(t.L,"break"));var a=we(t,t.dyd.gt,r,n,e);Se(t,a)},ur=function(t,e,r){var n,a=t.fs,u=t.dyd.label;!function(t,e,r){for(var n=t.bl.firstlabel;n<e.n;n++)if(re(r,e.arr[n].name)){var a=Rt.luaO_pushfstring(t.ls.L,o("label '%s' already defined on line %d",!0),r.getstr(),e.arr[n].line);le(t.ls,a)}}(a,u,e),pe(t,te.TK_DBCOLON),n=we(t,u,e,r,$(a)),function(t){for(;59===t.t.token||t.t.token===te.TK_DBCOLON;)fr(t)}(t),Ve(t,0)&&(u.arr[n].nactvar=a.bl.nactvar),Ie(t,u.arr[n])},sr=function(t){var e=new ue;return $e(t,e),q(t.fs,e),Nt(e.k===ae.VNONRELOC),e.u.info},or=function(t,e,r,n,a){var u,s=new ne,o=t.fs;ke(t,3),pe(t,te.TK_DO);var l=a?j(o,Pt,e,V):ut(o);Me(o,s,0),ke(t,n),pt(o,n),tr(t),Ce(o),ct(o,l),a?u=j(o,Mt,e,V):(K(o,Kt,e,0,n),Q(o,r),u=j(o,Ft,e+2,V)),it(o,u,l+1),Q(o,r)},lr=function(t,e){var r=t.fs,n=new ne;Me(r,n,1),Ot.luaX_next(t);var a=Le(t);switch(t.t.token){case 61:!function(t,e,r){var n=t.fs,a=n.freereg;xe(t,"(for index)"),xe(t,"(for limit)"),xe(t,"(for step)"),Te(t,e),pe(t,61),sr(t),pe(t,44),sr(t),fe(t,44)?sr(t):(H(n,n.freereg,at(n,1)),pt(n,1)),or(t,a,r,1,1)}(t,a,e);break;case 44:case te.TK_IN:!function(t,e){var r=t.fs,n=new ue,a=4,u=r.freereg;for(xe(t,"(for generator)"),xe(t,"(for state)"),xe(t,"(for control)"),Te(t,e);fe(t,44);)Te(t,Le(t)),a++;pe(t,te.TK_IN);var s=t.linenumber;Ue(t,3,Je(t,n),n),G(r,3),or(t,u,s,a-3,0)}(t,a);break;default:Ot.luaX_syntaxerror(t,o("'=' or 'in' expected",!0))}he(t,te.TK_END,te.TK_FOR,e),Ce(r)},ir=function(t,e){var r,n=new ne,a=t.fs,u=new ue;if(Ot.luaX_next(t),$e(t,u),pe(t,te.TK_THEN),t.t.token===te.TK_GOTO||t.t.token===te.TK_BREAK){for(tt(t.fs,u),Me(a,n,!1),ar(t,u.t);fe(t,59););if(Ve(t,0))return Ce(a),e;r=ut(a)}else et(t.fs,u),Me(a,n,!1),r=u.f;return Be(t),Ce(a),t.t.token!==te.TK_ELSE&&t.t.token!==te.TK_ELSEIF||(e=X(a,e,ut(a))),ct(a,r),e},cr=function(t,e){var r=new ue,n=new ue;Ot.luaX_next(t);var a=function(t,e){var r=0;for(me(t,e);46===t.t.token;)Ge(t,e);return 58===t.t.token&&(r=1,Ge(t,e)),r}(t,r);Ye(t,n,a,e),Tt(t.fs,r,n),Q(t.fs,e)},fr=function(t){var e=t.linenumber;switch(Ne(t),t.t.token){case 59:Ot.luaX_next(t);break;case te.TK_IF:!function(t,e){var r=t.fs,n=V;for(n=ir(t,n);t.t.token===te.TK_ELSEIF;)n=ir(t,n);fe(t,te.TK_ELSE)&&tr(t),he(t,te.TK_END,te.TK_IF,e),ct(r,n)}(t,e);break;case te.TK_WHILE:!function(t,e){var r=t.fs,n=new ne;Ot.luaX_next(t);var a=$(r),u=nr(t);Me(r,n,1),pe(t,te.TK_DO),tr(t),st(r,a),he(t,te.TK_END,te.TK_WHILE,e),Ce(r),ct(r,u)}(t,e);break;case te.TK_DO:Ot.luaX_next(t),tr(t),he(t,te.TK_END,te.TK_DO,e);break;case te.TK_FOR:lr(t,e);break;case te.TK_REPEAT:!function(t,e){var r=t.fs,n=$(r),a=new ne,u=new ne;Me(r,a,1),Me(r,u,0),Ot.luaX_next(t),Be(t),he(t,te.TK_UNTIL,te.TK_REPEAT,e);var s=nr(t);u.upval&&lt(r,s,u.nactvar),Ce(r),it(r,s,n),Ce(r)}(t,e);break;case te.TK_FUNCTION:cr(t,e);break;case te.TK_LOCAL:Ot.luaX_next(t),fe(t,te.TK_FUNCTION)?function(t){var e=new ue,r=t.fs;Te(t,Le(t)),ke(t,1),Ye(t,e,0,t.linenumber),be(r,e.u.info).startpc=r.pc}(t):function(t){var e,r=0,n=new ue;do{Te(t,Le(t)),r++}while(fe(t,44));fe(t,61)?e=Je(t,n):(n.k=ae.VVOID,e=0),Ue(t,r,e,n),ke(t,r)}(t);break;case te.TK_DBCOLON:Ot.luaX_next(t),ur(t,Le(t),e);break;case te.TK_RETURN:Ot.luaX_next(t),function(t){var e,r,n=t.fs,a=new ue;Ve(t,1)||59===t.t.token?e=r=0:(r=Je(t,a),ee(a.k)?(dt(n,a),a.k===ae.VCALL&&1===r&&(Yt(B(n,a),Gt),Nt(B(n,a).A===n.nactvar)),e=n.nactvar,r=s):1===r?e=J(n,a):(q(n,a),e=n.nactvar,Nt(r===n.freereg-e))),vt(n,e,r),fe(t,59)}(t);break;case te.TK_BREAK:case te.TK_GOTO:ar(t,ut(t.fs));break;default:!function(t){var e=t.fs,r=new er;qe(t,r.v),61===t.t.token||44===t.t.token?(r.prev=null,rr(t,r,1)):(ve(t,r.v.k===ae.VCALL,o("syntax error",!0)),zt(B(e,r.v),1))}(t)}Nt(t.fs.f.maxstacksize>=t.fs.freereg&&t.fs.freereg>=t.fs.nactvar),t.fs.freereg=t.fs.nactvar,Re(t)};t.exports.Dyndata=function t(){a(this,t),this.actvar={arr:[],n:NaN,size:NaN},this.gt=new oe,this.label=new oe},t.exports.expkind=ae,t.exports.expdesc=ue,t.exports.luaY_parser=function(t,e,r,n,a,u){var s=new Ot.LexState,o=new se,l=kt.luaF_newLclosure(t,1);return bt.luaD_inctop(t),t.stack[t.top-1].setclLvalue(l),s.h=Qt.luaH_new(t),bt.luaD_inctop(t),t.stack[t.top-1].sethvalue(s.h),o.f=l.p=new $t(t),o.f.source=qt(t,a),s.buff=r,s.dyd=n,n.actvar.n=n.gt.n=n.label.n=0,Ot.luaX_setinput(t,s,e,o.f.source,u),function(t,e){var r=new ne,n=new ue;Pe(t,e,r),e.f.is_vararg=!0,de(n,ae.VLOCAL,0),Oe(e,t.envn,n),Ot.luaX_next(t),Be(t),_e(t,te.TK_EOS),De(t)}(s,o),Nt(!o.prev&&1===o.nups&&!s.fs),Nt(0===n.actvar.n&&0===n.gt.n&&0===n.label.n),delete t.stack[--t.top],l},t.exports.vkisinreg=function(t){return t===ae.VNONRELOC||t===ae.VLOCAL}},function(t,e,r){"use strict";var n,a,u=r(2),s=u.LUA_MULTRET,o=u.LUA_OK,l=u.LUA_TFUNCTION,i=u.LUA_TNIL,c=u.LUA_TNONE,f=u.LUA_TNUMBER,_=u.LUA_TSTRING,p=u.LUA_TTABLE,v=u.LUA_VERSION,h=u.LUA_YIELD,L=u.lua_call,d=u.lua_callk,A=u.lua_concat,g=u.lua_error,T=u.lua_getglobal,x=u.lua_geti,b=u.lua_getmetatable,k=u.lua_gettop,O=u.lua_insert,E=u.lua_isnil,m=u.lua_isnone,U=u.lua_isstring,N=u.lua_load,R=u.lua_next,y=u.lua_pcallk,S=u.lua_pop,w=u.lua_pushboolean,I=u.lua_pushcfunction,M=u.lua_pushglobaltable,P=u.lua_pushinteger,C=u.lua_pushliteral,D=u.lua_pushnil,V=u.lua_pushstring,B=u.lua_pushvalue,G=u.lua_rawequal,K=u.lua_rawget,F=u.lua_rawlen,j=u.lua_rawset,H=u.lua_remove,X=u.lua_replace,z=u.lua_rotate,Y=u.lua_setfield,J=u.lua_setmetatable,Z=u.lua_settop,q=u.lua_setupvalue,W=u.lua_stringtonumber,Q=u.lua_toboolean,$=u.lua_tolstring,tt=u.lua_tostring,et=u.lua_type,rt=u.lua_typename,nt=r(7),at=nt.luaL_argcheck,ut=nt.luaL_checkany,st=nt.luaL_checkinteger,ot=nt.luaL_checkoption,lt=nt.luaL_checkstack,it=nt.luaL_checktype,ct=nt.luaL_error,ft=nt.luaL_getmetafield,_t=nt.luaL_loadbufferx,pt=nt.luaL_loadfile,vt=nt.luaL_loadfilex,ht=nt.luaL_optinteger,Lt=nt.luaL_optstring,dt=nt.luaL_setfuncs,At=nt.luaL_tolstring,gt=nt.luaL_where,Tt=r(5),xt=Tt.to_jsstring,bt=Tt.to_luastring;if("function"==typeof TextDecoder){var kt="",Ot=new TextDecoder("utf-8");n=function(t){kt+=Ot.decode(t,{stream:!0})};var Et=new Uint8Array(0);a=function(){kt+=Ot.decode(Et),console.log(kt),kt=""}}else{var mt=[];n=function(t){try{t=xt(t)}catch(r){var e=new Uint8Array(t.length);e.set(t),t=e}mt.push(t)},a=function(){console.log.apply(console.log,mt),mt=[]}}var Ut=["stop","restart","collect","count","step","setpause","setstepmul","isrunning"].map(function(t){return bt(t)}),Nt=function(t){return it(t,1,p),Z(t,2),R(t,1)?2:(D(t),1)},Rt=function(t){var e=st(t,2)+1;return P(t,e),x(t,1,e)===i?1:2},yt=function(t){var e=ht(t,2,1);return Z(t,1),et(t,1)===_&&e>0&&(gt(t,e),B(t,1),A(t,2)),g(t)},St=function(t,e,r){return e!==o&&e!==h?(w(t,0),B(t,-2),2):k(t)-r},wt=function(t,e,r){return e===o?(0!==r&&(B(t,r),q(t,-2,1)||S(t,1)),1):(D(t),O(t,-2),2)},It=function(t,e){return lt(t,2,"too many nested functions"),B(t,1),L(t,0,1),E(t,-1)?(S(t,1),null):(U(t,-1)||ct(t,bt("reader function must return a string")),X(t,5),tt(t,5))},Mt=function(t,e,r){return k(t)-1},Pt={assert:function(t){return Q(t,1)?k(t):(ut(t,1),H(t,1),C(t,"assertion failed!"),Z(t,1),yt(t))},collectgarbage:function(t){ot(t,1,"collect",Ut),ht(t,2,0),ct(t,bt("lua_gc not implemented"))},dofile:function(t){var e=Lt(t,1,null);return Z(t,1),pt(t,e)!==o?g(t):(d(t,0,s,0,Mt),Mt(t))},error:yt,getmetatable:function(t){return ut(t,1),b(t,1)?(ft(t,1,bt("__metatable",!0)),1):(D(t),1)},ipairs:function(t){return ut(t,1),I(t,Rt),B(t,1),P(t,0),3},load:function(t){var e,r=tt(t,1),n=Lt(t,3,"bt"),a=m(t,4)?0:4;if(null!==r){var u=Lt(t,2,r);e=_t(t,r,r.length,u,n)}else{var s=Lt(t,2,"=(load)");it(t,1,l),Z(t,5),e=N(t,It,null,s,n)}return wt(t,e,a)},loadfile:function(t){var e=Lt(t,1,null),r=Lt(t,2,null),n=m(t,3)?0:3,a=vt(t,e,r);return wt(t,a,n)},next:Nt,pairs:function(t){return function(t,e,r,n){return ut(t,1),ft(t,1,e)===i?(I(t,n),B(t,1),r?P(t,0):D(t)):(B(t,1),L(t,1,3)),3}(t,bt("__pairs",!0),0,Nt)},pcall:function(t){ut(t,1),w(t,1),O(t,1);var e=y(t,k(t)-2,s,0,0,St);return St(t,e,0)},print:function(t){var e=k(t);T(t,bt("tostring",!0));for(var r=1;r<=e;r++){B(t,-1),B(t,r),L(t,1,1);var u=$(t,-1);if(null===u)return ct(t,bt("'tostring' must return a string to 'print'"));r>1&&n(bt("\t")),n(u),S(t,1)}return a(),0},rawequal:function(t){return ut(t,1),ut(t,2),w(t,G(t,1,2)),1},rawget:function(t){return it(t,1,p),ut(t,2),Z(t,2),K(t,1),1},rawlen:function(t){var e=et(t,1);return at(t,e===p||e===_,1,"table or string expected"),P(t,F(t,1)),1},rawset:function(t){return it(t,1,p),ut(t,2),ut(t,3),Z(t,3),j(t,1),1},select:function(t){var e=k(t);if(et(t,1)===_&&35===tt(t,1)[0])return P(t,e-1),1;var r=st(t,1);return r<0?r=e+r:r>e&&(r=e),at(t,1<=r,1,"index out of range"),e-r},setmetatable:function(t){var e=et(t,2);return it(t,1,p),at(t,e===i||e===p,2,"nil or table expected"),ft(t,1,bt("__metatable",!0))!==i?ct(t,bt("cannot change a protected metatable")):(Z(t,2),J(t,1),1)},tonumber:function(t){if(et(t,2)<=0){if(ut(t,1),et(t,1)===f)return Z(t,1),1;var e=tt(t,1);if(null!==e&&W(t,e)===e.length+1)return 1}else{var r=st(t,2);it(t,1,_);var n=tt(t,1);at(t,2<=r&&r<=36,2,"base out of range");var a=function(t,e){try{t=xt(t)}catch(t){return null}var r=/^[\t\v\f \n\r]*([+-]?)0*([0-9A-Za-z]+)[\t\v\f \n\r]*$/.exec(t);if(!r)return null;var n=parseInt(r[1]+r[2],e);return isNaN(n)?null:0|n}(n,r);if(null!==a)return P(t,a),1}return D(t),1},tostring:function(t){return ut(t,1),At(t,1),1},type:function(t){var e=et(t,1);return at(t,e!==c,1,"value expected"),V(t,rt(t,e)),1},xpcall:function(t){var e=k(t);it(t,2,l),w(t,1),B(t,1),z(t,3,2);var r=y(t,e-2,s,2,2,St);return St(t,r,2)}};t.exports.luaopen_base=function(t){return M(t),dt(t,Pt,0),B(t,-1),Y(t,-2,bt("_G")),C(t,v),Y(t,-2,bt("_VERSION")),1}},function(t,e,r){"use strict";var n=r(2),a=n.LUA_OK,u=n.LUA_TFUNCTION,s=n.LUA_TSTRING,o=n.LUA_YIELD,l=n.lua_Debug,i=n.lua_checkstack,c=n.lua_concat,f=n.lua_error,_=n.lua_getstack,p=n.lua_gettop,v=n.lua_insert,h=n.lua_isyieldable,L=n.lua_newthread,d=n.lua_pop,A=n.lua_pushboolean,g=n.lua_pushcclosure,T=n.lua_pushliteral,x=n.lua_pushthread,b=n.lua_pushvalue,k=n.lua_resume,O=n.lua_status,E=n.lua_tothread,m=n.lua_type,U=n.lua_upvalueindex,N=n.lua_xmove,R=n.lua_yield,y=r(7),S=y.luaL_argcheck,w=y.luaL_checktype,I=y.luaL_newlib,M=y.luaL_where,P=function(t){var e=E(t,1);return S(t,e,1,"thread expected"),e},C=function(t,e,r){if(!i(e,r))return T(t,"too many arguments to resume"),-1;if(O(e)===a&&0===p(e))return T(t,"cannot resume dead coroutine"),-1;N(t,e,r);var n=k(e,t,r);if(n===a||n===o){var u=p(e);return i(t,u+1)?(N(e,t,u),u):(d(e,u),T(t,"too many results to resume"),-1)}return N(e,t,1),-1},D=function(t){var e=E(t,U(1)),r=C(t,e,p(t));return r<0?(m(t,-1)===s&&(M(t,1),v(t,-2),c(t,2)),f(t)):r},V=function(t){w(t,1,u);var e=L(t);return b(t,1),N(t,e,1),1},B={create:V,isyieldable:function(t){return A(t,h(t)),1},resume:function(t){var e=P(t),r=C(t,e,p(t)-1);return r<0?(A(t,0),v(t,-2),2):(A(t,1),v(t,-(r+1)),r+1)},running:function(t){return A(t,x(t)),2},status:function(t){var e=P(t);if(t===e)T(t,"running");else switch(O(e)){case o:T(t,"suspended");break;case a:var r=new l;_(e,0,r)>0?T(t,"normal"):0===p(e)?T(t,"dead"):T(t,"suspended");break;default:T(t,"dead")}return 1},wrap:function(t){return V(t),g(t,D,1),1},yield:function(t){return R(t,p(t))}};t.exports.luaopen_coroutine=function(t){return I(t,B),1}},function(t,e,r){"use strict";var n=r(3).LUA_MAXINTEGER,a=r(2),u=a.LUA_OPEQ,s=a.LUA_OPLT,o=a.LUA_TFUNCTION,l=a.LUA_TNIL,i=a.LUA_TTABLE,c=a.lua_call,f=a.lua_checkstack,_=a.lua_compare,p=a.lua_createtable,v=a.lua_geti,h=a.lua_getmetatable,L=a.lua_gettop,d=a.lua_insert,A=a.lua_isnil,g=a.lua_isnoneornil,T=a.lua_isstring,x=a.lua_pop,b=a.lua_pushinteger,k=a.lua_pushnil,O=a.lua_pushstring,E=a.lua_pushvalue,m=a.lua_rawget,U=a.lua_setfield,N=a.lua_seti,R=a.lua_settop,y=a.lua_toboolean,S=a.lua_type,w=r(7),I=w.luaL_Buffer,M=w.luaL_addlstring,P=w.luaL_addvalue,C=w.luaL_argcheck,D=w.luaL_buffinit,V=w.luaL_checkinteger,B=w.luaL_checktype,G=w.luaL_error,K=w.luaL_len,F=w.luaL_newlib,j=w.luaL_opt,H=w.luaL_optinteger,X=w.luaL_optlstring,z=w.luaL_pushresult,Y=w.luaL_typename,J=r(17),Z=r(5).to_luastring,q=function(t,e,r){return O(t,e),m(t,-r)!==l},W=function(t,e,r){if(S(t,e)!==i){var n=1;!h(t,e)||1&r&&!q(t,Z("__index",!0),++n)||2&r&&!q(t,Z("__newindex",!0),++n)||4&r&&!q(t,Z("__len",!0),++n)?B(t,e,i):x(t,n)}},Q=function(t,e,r){return W(t,e,4|r),K(t,e)},$=function(t,e,r){v(t,1,r),T(t,-1)||G(t,Z("invalid value (%s) at index %d in table for 'concat'"),Y(t,-1),r),P(e)},tt=function(t,e,r){N(t,1,e),N(t,1,r)},et=function(t,e,r){if(A(t,2))return _(t,e,r,s);E(t,2),E(t,e-1),E(t,r-2),c(t,2,1);var n=y(t,-1);return x(t,1),n},rt=function(t,e,r){for(var n=e,a=r-1;;){for(;v(t,1,++n),et(t,-1,-2);)n==r-1&&G(t,Z("invalid order function for sorting")),x(t,1);for(;v(t,1,--a),et(t,-3,-1);)a<n&&G(t,Z("invalid order function for sorting")),x(t,1);if(a<n)return x(t,1),tt(t,r-1,n),n;tt(t,n,a)}},nt=function(t,e,r){var n=Math.floor((e-t)/4),a=r%(2*n)+(t+n);return J.lua_assert(t+n<=a&&a<=e-n),a},at={concat:function(t){var e=Q(t,1,1),r=X(t,2,""),n=r.length,a=H(t,3,1);e=H(t,4,e);var u=new I;for(D(t,u);a<e;a++)$(t,u,a),M(u,r,n);return a===e&&$(t,u,a),z(u),1},insert:function(t){var e,r=Q(t,1,3)+1;switch(L(t)){case 2:e=r;break;case 3:e=V(t,2),C(t,1<=e&&e<=r,2,"position out of bounds");for(var n=r;n>e;n--)v(t,1,n-1),N(t,1,n);break;default:return G(t,"wrong number of arguments to 'insert'")}return N(t,1,e),0},move:function(t){var e=V(t,2),r=V(t,3),a=V(t,4),s=g(t,5)?1:5;if(W(t,1,1),W(t,s,2),r>=e){C(t,e>0||r<n+e,3,"too many elements to move");var o=r-e+1;if(C(t,a<=n-o+1,4,"destination wrap around"),a>r||a<=e||1!==s&&1!==_(t,1,s,u))for(var l=0;l<o;l++)v(t,1,e+l),N(t,s,a+l);else for(var i=o-1;i>=0;i--)v(t,1,e+i),N(t,s,a+i)}return E(t,s),1},pack:function(t){var e=L(t);p(t,e,1),d(t,1);for(var r=e;r>=1;r--)N(t,1,r);return b(t,e),U(t,1,Z("n")),1},remove:function(t){var e=Q(t,1,3),r=H(t,2,e);for(r!==e&&C(t,1<=r&&r<=e+1,1,"position out of bounds"),v(t,1,r);r<e;r++)v(t,1,r+1),N(t,1,r);return k(t),N(t,1,r),1},sort:function(t){var e=Q(t,1,3);return e>1&&(C(t,e<n,1,"array too big"),g(t,2)||B(t,2,o),R(t,2),function t(e,r,n,a){for(;r<n;){if(v(e,1,r),v(e,1,n),et(e,-1,-2)?tt(e,r,n):x(e,2),n-r==1)return;var u=void 0;if(u=n-r<100||0===a?Math.floor((r+n)/2):nt(r,n,a),v(e,1,u),v(e,1,r),et(e,-2,-1)?tt(e,u,r):(x(e,1),v(e,1,n),et(e,-1,-2)?tt(e,u,n):x(e,2)),n-r==2)return;v(e,1,u),E(e,-1),v(e,1,n-1),tt(e,u,n-1);var s=void 0;(u=rt(e,r,n))-r<n-u?(t(e,r,u-1,a),s=u-r,r=u+1):(t(e,u+1,n,a),s=n-u,n=u-1),(n-r)/128>s&&(a=Math.floor(4294967296*Math.random()))}}(t,1,e,0)),0},unpack:function(t){var e=H(t,2,1),r=j(t,V,3,K(t,1));if(e>r)return 0;var n=r-e;if(n>=Number.MAX_SAFE_INTEGER||!f(t,++n))return G(t,Z("too many results to unpack"));for(;e<r;e++)v(t,1,e);return v(t,1,r),n}};t.exports.luaopen_table=function(t){return F(t,at),1}},function(t,e,r){"use strict";var n=r(2),a=n.LUA_TNIL,u=n.LUA_TTABLE,s=(n.lua_close,n.lua_createtable),o=n.lua_getfield,l=(n.lua_isboolean,n.lua_isnoneornil),i=n.lua_pop,c=(n.lua_pushboolean,n.lua_pushfstring),f=n.lua_pushinteger,_=(n.lua_pushliteral,n.lua_pushnil,n.lua_pushnumber),p=(n.lua_pushstring,n.lua_setfield),v=n.lua_settop,h=(n.lua_toboolean,n.lua_tointegerx),L=r(7),d=L.luaL_Buffer,A=L.luaL_addchar,g=L.luaL_addstring,T=L.luaL_argerror,x=L.luaL_buffinit,b=L.luaL_checkinteger,k=(L.luaL_checkstring,L.luaL_checktype),O=L.luaL_error,E=(L.luaL_execresult,L.luaL_fileresult,L.luaL_newlib),m=(L.luaL_optinteger,L.luaL_optlstring),U=(L.luaL_optstring,L.luaL_pushresult),N=r(5),R=N.luastring_eq,y=(N.to_jsstring,N.to_luastring),S=y("aAbBcCdDeFhHIjklmMnpPrRStTuUwWxXyYzZ%"),w=function(t,e,r){f(t,r),p(t,-2,y(e,!0))},I=function(t,e,r){w(t,"sec",r?e.getUTCSeconds():e.getSeconds()),w(t,"min",r?e.getUTCMinutes():e.getMinutes()),w(t,"hour",r?e.getUTCHours():e.getHours()),w(t,"day",r?e.getUTCDate():e.getDate()),w(t,"month",(r?e.getUTCMonth():e.getMonth())+1),w(t,"year",r?e.getUTCFullYear():e.getFullYear()),w(t,"wday",(r?e.getUTCDay():e.getDay())+1),w(t,"yday",Math.floor((e-new Date(e.getFullYear(),0,0))/864e5))},M=Number.MAX_SAFE_INTEGER/2,P=function(t,e,r,n){var u=o(t,-1,y(e,!0)),s=h(t,-1);if(!1===s){if(u!==a)return O(t,y("field '%s' is not an integer"),e);if(r<0)return O(t,y("field '%s' missing in date table"),e);s=r}else{if(!(-M<=s&&s<=M))return O(t,y("field '%s' is out-of-bound"),e);s-=n}return i(t,1),s},C={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"].map(function(t){return y(t)}),shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(function(t){return y(t)}),months:["January","February","March","April","May","June","July","August","September","October","November","December"].map(function(t){return y(t)}),shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"].map(function(t){return y(t)}),AM:y("AM"),PM:y("PM"),am:y("am"),pm:y("pm"),formats:{c:y("%a %b %e %H:%M:%S %Y"),D:y("%m/%d/%y"),F:y("%Y-%m-%d"),R:y("%H:%M"),r:y("%I:%M:%S %p"),T:y("%H:%M:%S"),X:y("%T"),x:y("%D")}},D=function(t,e){var r=t.getDay();"monday"===e&&(0===r?r=6:r--);var n=(t-new Date(t.getFullYear(),0,1))/864e5;return Math.floor((n+7-r)/7)},V=function(t,e,r){e<10&&A(t,r),g(t,y(String(e)))},B=function(t,e,r){for(var n=S,a=0,u=1;a<n.length&&u<=e.length-r;a+=u)if(n[a]==="|".charCodeAt(0))u++;else if(R(e.subarray(r,r+u),n.subarray(a,a+u)))return u;T(t,1,c(t,y("invalid conversion specifier '%%%s'"),e))},G=function(t,e){return b(t,e)},K={date:function(t){var e=m(t,1,"%c"),r=l(t,2)?new Date:new Date(1e3*G(t,2)),n=!1,a=0;if(e[a]==="!".charCodeAt(0)&&(n=!0,a++),e[a]==="*".charCodeAt(0)&&e[a+1]==="t".charCodeAt(0))s(t,0,9),I(t,r,n);else{new Uint8Array(4)[0]="%".charCodeAt(0);var u=new d;x(t,u),function t(e,r,n,a){for(var u=0;u<n.length;)if(37!==n[u])A(r,n[u++]);else{var s=B(e,n,++u);switch(n[u]){case 37:A(r,37);break;case 65:g(r,C.days[a.getDay()]);break;case 66:g(r,C.months[a.getMonth()]);break;case 67:V(r,Math.floor(a.getFullYear()/100),48);break;case 68:t(e,r,C.formats.D,a);break;case 70:t(e,r,C.formats.F,a);break;case 72:V(r,a.getHours(),48);break;case 73:V(r,(a.getHours()+11)%12+1,48);break;case 77:V(r,a.getMinutes(),48);break;case 80:g(r,a.getHours()<12?C.am:C.pm);break;case 82:t(e,r,C.formats.R,a);break;case 83:V(r,a.getSeconds(),48);break;case 84:t(e,r,C.formats.T,a);break;case 85:V(r,D(a,"sunday"),48);break;case 87:V(r,D(a,"monday"),48);break;case 88:t(e,r,C.formats.X,a);break;case 89:g(r,y(String(a.getFullYear())));break;case 90:var o=a.toString().match(/\(([\w\s]+)\)/);o&&g(r,y(o[1]));break;case 97:g(r,C.shortDays[a.getDay()]);break;case 98:case 104:g(r,C.shortMonths[a.getMonth()]);break;case 99:t(e,r,C.formats.c,a);break;case 100:V(r,a.getDate(),48);break;case 101:V(r,a.getDate(),32);break;case 106:var l=Math.floor((a-new Date(a.getFullYear(),0,1))/864e5);l<100&&(l<10&&A(r,48),A(r,48)),g(r,y(String(l)));break;case 107:V(r,a.getHours(),32);break;case 108:V(r,(a.getHours()+11)%12+1,32);break;case 109:V(r,a.getMonth()+1,48);break;case 110:A(r,10);break;case 112:g(r,a.getHours()<12?C.AM:C.PM);break;case 114:t(e,r,C.formats.r,a);break;case 115:g(r,y(String(Math.floor(a/1e3))));break;case 116:A(r,8);break;case 117:var i=a.getDay();g(r,y(String(0===i?7:i)));break;case 119:g(r,y(String(a.getDay())));break;case 120:t(e,r,C.formats.x,a);break;case 121:V(r,a.getFullYear()%100,48);break;case 122:var c=a.getTimezoneOffset();c>0?A(r,45):(c=-c,A(r,43)),V(r,Math.floor(c/60),48),V(r,c%60,48)}u+=s}}(t,u,e,r),U(u)}return 1},difftime:function(t){var e=G(t,1),r=G(t,2);return _(t,e-r),1},time:function(t){var e;return l(t,1)?e=new Date:(k(t,1,u),v(t,1),e=new Date(P(t,"year",-1,0),P(t,"month",-1,1),P(t,"day",-1,0),P(t,"hour",12,0),P(t,"min",0,0),P(t,"sec",0,0)),I(t,e)),f(t,Math.floor(e/1e3)),1}};K.clock=function(t){return _(t,performance.now()/1e3),1};t.exports.luaopen_os=function(t){return E(t,K),1}},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=r(38).sprintf,u=r(3),s=u.LUA_INTEGER_FMT,o=u.LUA_INTEGER_FRMLEN,l=u.LUA_MININTEGER,i=u.LUA_NUMBER_FMT,c=u.LUA_NUMBER_FRMLEN,f=u.frexp,_=u.lua_getlocaledecpoint,p=r(2),v=p.LUA_TBOOLEAN,h=p.LUA_TFUNCTION,L=p.LUA_TNIL,d=p.LUA_TNUMBER,A=p.LUA_TSTRING,g=p.LUA_TTABLE,T=p.lua_call,x=p.lua_createtable,b=p.lua_dump,k=p.lua_gettable,O=p.lua_gettop,E=p.lua_isinteger,m=p.lua_isstring,U=p.lua_pop,N=p.lua_pushcclosure,R=p.lua_pushinteger,y=p.lua_pushlightuserdata,S=p.lua_pushliteral,w=p.lua_pushlstring,I=p.lua_pushnil,M=p.lua_pushnumber,P=p.lua_pushstring,C=p.lua_pushvalue,D=p.lua_remove,V=p.lua_setfield,B=p.lua_setmetatable,G=p.lua_settop,K=p.lua_toboolean,F=p.lua_tointeger,j=p.lua_tonumber,H=p.lua_tostring,X=p.lua_touserdata,z=p.lua_type,Y=p.lua_upvalueindex,J=r(7),Z=J.luaL_Buffer,q=J.luaL_addchar,W=J.luaL_addlstring,Q=J.luaL_addsize,$=J.luaL_addstring,tt=J.luaL_addvalue,et=J.luaL_argcheck,rt=J.luaL_argerror,nt=J.luaL_buffinit,at=J.luaL_buffinitsize,ut=J.luaL_checkinteger,st=J.luaL_checknumber,ot=J.luaL_checkstack,lt=J.luaL_checkstring,it=J.luaL_checktype,ct=J.luaL_error,ft=J.luaL_newlib,_t=J.luaL_optinteger,pt=J.luaL_optstring,vt=J.luaL_prepbuffsize,ht=J.luaL_pushresult,Lt=J.luaL_pushresultsize,dt=J.luaL_tolstring,At=J.luaL_typename,gt=r(17),Tt=r(5),xt=Tt.luastring_eq,bt=Tt.luastring_indexOf,kt=Tt.to_jsstring,Ot=Tt.to_luastring,Et="%".charCodeAt(0),mt=function(t){var e=bt(t,0);return e>-1?e:t.length},Ut=function(t,e){return t>=0?t:0-t>e?0:e+t+1},Nt=function(t,e,r,n){return W(n,e,r),0},Rt=c.length+1,yt=function(t,e,r){var n=function(t){if(Object.is(t,1/0))return Ot("inf");if(Object.is(t,-1/0))return Ot("-inf");if(Number.isNaN(t))return Ot("nan");if(0===t){var e=a(i+"x0p+0",t);return Object.is(t,-0)&&(e="-"+e),Ot(e)}var r="",n=f(t),u=n[0],s=n[1];return u<0&&(r+="-",u=-u),r+="0x",r+=(2*u).toString(16),r+=a("p%+d",s-=1),Ot(r)}(r);if(65===e[Rt])for(var u=0;u<n.length;u++){var s=n[u];s>=97&&(n[u]=223&s)}else 97!==e[Rt]&&ct(t,Ot("modifiers for format '%%a'/'%%A' not implemented"));return n},St=Ot("-+ #0"),wt=function(t){return 97<=t&&t<=122||65<=t&&t<=90},It=function(t){return 48<=t&&t<=57},Mt=function(t){return 0<=t&&t<=31||127===t},Pt=function(t){return 33<=t&&t<=126},Ct=function(t){return 97<=t&&t<=122},Dt=function(t){return 65<=t&&t<=90},Vt=function(t){return 97<=t&&t<=122||65<=t&&t<=90||48<=t&&t<=57},Bt=function(t){return Pt(t)&&!Vt(t)},Gt=function(t){return 32===t||t>=9&&t<=13},Kt=function(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102},Ft=function(t,e,r){switch(z(t,r)){case A:var n=H(t,r);!function(t,e,r){q(t,34);for(var n=0;r--;){if(34===e[n]||92===e[n]||10===e[n])q(t,92),q(t,e[n]);else if(Mt(e[n])){var a=""+e[n];It(e[n+1])&&(a="0".repeat(3-a.length)+a),$(t,Ot("\\"+a))}else q(t,e[n]);n++}q(t,34)}(e,n,n.length);break;case d:var u;if(E(t,r)){var i=F(t,r);u=Ot(a(i===l?"0x%"+o+"x":s,i))}else{var c=j(t,r);(function(t){if(bt(t,46)<0){var e=_(),r=bt(t,e);r&&(t[r]=46)}})(u=yt(t,Ot("%".concat(o,"a")),c))}$(e,u);break;case L:case v:dt(t,r),tt(e);break;default:rt(t,r,Ot("value has no literal form"))}},jt=function(t,e,r,n){for(var a=r;0!==e[a]&&bt(St,e[a])>=0;)a++;a-r>=St.length&&ct(t,Ot("invalid format (repeated flags)")),It(e[a])&&a++,It(e[a])&&a++,46===e[a]&&(It(e[++a])&&a++,It(e[a])&&a++),It(e[a])&&ct(t,Ot("invalid format (width or precision too long)")),n[0]=37;for(var u=0;u<a-r+1;u++)n[u+1]=e[r+u];return a},Ht=function(t,e){for(var r=t.length,n=e.length,a=t[r-1],u=0;u<n;u++)t[u+r-1]=e[u];t[r+n-1]=a},Xt=function t(e){n(this,t),this.L=e,this.islittle=!0,this.maxalign=1},zt=It,Yt=function(t,e){if(t.off>=t.s.length||!zt(t.s[t.off]))return e;var r=0;do{r=10*r+(t.s[t.off++]-48)}while(t.off<t.s.length&&zt(t.s[t.off])&&r<=214748363.8);return r},Jt=function(t,e,r){var n=Yt(e,r);return(n>16||n<=0)&&ct(t.L,Ot("integral size (%d) out of limits [1,%d]"),n,16),n},Zt=function(t,e){var r={opt:e.s[e.off++],size:0};switch(r.opt){case 98:return r.size=1,r.opt=0,r;case 66:return r.size=1,r.opt=1,r;case 104:return r.size=2,r.opt=0,r;case 72:return r.size=2,r.opt=1,r;case 108:return r.size=4,r.opt=0,r;case 76:return r.size=4,r.opt=1,r;case 106:return r.size=4,r.opt=0,r;case 74:case 84:return r.size=4,r.opt=1,r;case 102:return r.size=4,r.opt=2,r;case 100:case 110:return r.size=8,r.opt=2,r;case 105:return r.size=Jt(t,e,4),r.opt=0,r;case 73:return r.size=Jt(t,e,4),r.opt=1,r;case 115:return r.size=Jt(t,e,4),r.opt=4,r;case 99:return r.size=Yt(e,-1),-1===r.size&&ct(t.L,Ot("missing size for format option 'c'")),r.opt=3,r;case 122:return r.opt=5,r;case 120:return r.size=1,r.opt=6,r;case 88:return r.opt=7,r;case 32:break;case 60:t.islittle=!0;break;case 62:t.islittle=!1;break;case 61:t.islittle=!0;break;case 33:t.maxalign=Jt(t,e,8);break;default:ct(t.L,Ot("invalid format option '%c'"),r.opt)}return r.opt=8,r},qt=function(t,e,r){var n={opt:NaN,size:NaN,ntoalign:NaN},a=Zt(t,r);n.size=a.size,n.opt=a.opt;var u=n.size;if(7===n.opt)if(r.off>=r.s.length||0===r.s[r.off])rt(t.L,1,Ot("invalid next option for option 'X'"));else{var s=Zt(t,r);u=s.size,3!==(s=s.opt)&&0!==u||rt(t.L,1,Ot("invalid next option for option 'X'"))}return u<=1||3===n.opt?n.ntoalign=0:(u>t.maxalign&&(u=t.maxalign),0!=(u&u-1)&&rt(t.L,1,Ot("format asks for alignment not power of 2")),n.ntoalign=u-(e&u-1)&u-1),n},Wt=function(t,e,r,n,a){var u=vt(t,n);u[r?0:n-1]=255&e;for(var s=1;s<n;s++)e>>=8,u[r?s:n-1-s]=255&e;if(a&&n>4)for(var o=4;o<n;o++)u[r?o:n-1-o]=255;Q(t,n)},Qt=function(t,e,r,n,a){for(var u=0,s=n<=4?n:4,o=s-1;o>=0;o--)u<<=8,u|=e[r?o:n-1-o];if(n<4){if(a){var l=1<<8*n-1;u=(u^l)-l}}else if(n>4)for(var i=!a||u>=0?0:255,c=s;c<n;c++)e[r?c:n-1-c]!==i&&ct(t,Ot("%d-byte integer does not fit into Lua Integer"),n);return u},$t=function(t,e,r,n){gt.lua_assert(e.length>=n);for(var a=new DataView(new ArrayBuffer(n)),u=0;u<n;u++)a.setUint8(u,e[u],r);return 4==n?a.getFloat32(0,r):a.getFloat64(0,r)},te=Ot("^$*+?.([%-"),ee=function t(e){n(this,t),this.src=null,this.src_init=null,this.src_end=null,this.p=null,this.p_end=null,this.L=e,this.matchdepth=NaN,this.level=NaN,this.capture=[]},re=function(t,e){switch(t.p[e++]){case Et:return e===t.p_end&&ct(t.L,Ot("malformed pattern (ends with '%%')")),e+1;case 91:94===t.p[e]&&e++;do{e===t.p_end&&ct(t.L,Ot("malformed pattern (missing ']')")),t.p[e++]===Et&&e<t.p_end&&e++}while(93!==t.p[e]);return e+1;default:return e}},ne=function(t,e){switch(e){case 97:return wt(t);case 65:return!wt(t);case 99:return Mt(t);case 67:return!Mt(t);case 100:return It(t);case 68:return!It(t);case 103:return Pt(t);case 71:return!Pt(t);case 108:return Ct(t);case 76:return!Ct(t);case 112:return Bt(t);case 80:return!Bt(t);case 115:return Gt(t);case 83:return!Gt(t);case 117:return Dt(t);case 85:return!Dt(t);case 119:return Vt(t);case 87:return!Vt(t);case 120:return Kt(t);case 88:return!Kt(t);case 122:return 0===t;case 90:return 0!==t;default:return e===t}},ae=function(t,e,r,n){var a=!0;for(94===t.p[r+1]&&(a=!1,r++);++r<n;)if(t.p[r]===Et){if(r++,ne(e,t.p[r]))return a}else if(45===t.p[r+1]&&r+2<n){if(r+=2,t.p[r-2]<=e&&e<=t.p[r])return a}else if(t.p[r]===e)return a;return!a},ue=function(t,e,r,n){if(e>=t.src_end)return!1;var a=t.src[e];switch(t.p[r]){case 46:return!0;case Et:return ne(a,t.p[r+1]);case 91:return ae(t,a,r,n-1);default:return t.p[r]===a}},se=function(t,e,r){if(r>=t.p_end-1&&ct(t.L,Ot("malformed pattern (missing arguments to '%%b'")),t.src[e]!==t.p[r])return null;for(var n=t.p[r],a=t.p[r+1],u=1;++e<t.src_end;)if(t.src[e]===a){if(0==--u)return e+1}else t.src[e]===n&&u++;return null},oe=function(t,e,r,n){for(var a=0;ue(t,e+a,r,n);)a++;for(;a>=0;){var u=_e(t,e+a,n+1);if(u)return u;a--}return null},le=function(t,e,r,n){for(;;){var a=_e(t,e,n+1);if(null!==a)return a;if(!ue(t,e,r,n))return null;e++}},ie=function(t,e,r,n){var a,u=t.level;return u>=32&&ct(t.L,Ot("too many captures")),t.capture[u]=t.capture[u]?t.capture[u]:{},t.capture[u].init=e,t.capture[u].len=n,t.level=u+1,null===(a=_e(t,e,r))&&t.level--,a},ce=function(t,e,r){var n,a=function(t){var e=t.level;for(e--;e>=0;e--)if(-1===t.capture[e].len)return e;return ct(t.L,Ot("invalid pattern capture"))}(t);return t.capture[a].len=e-t.capture[a].init,null===(n=_e(t,e,r))&&(t.capture[a].len=-1),n},fe=function(t,e,r){r=function(t,e){return(e-=49)<0||e>=t.level||-1===t.capture[e].len?ct(t.L,Ot("invalid capture index %%%d"),e+1):e}(t,r);var n=t.capture[r].len;return t.src_end-e>=n&&function(t,e,r,n,a){return xt(t.subarray(e,e+a),r.subarray(n,n+a))}(t.src,t.capture[r].init,t.src,e,n)?e+n:null},_e=function t(e,r,n){var a=!1,u=!0;for(0==e.matchdepth--&&ct(e.L,Ot("pattern too complex"));u||a;)if(u=!1,n!==e.p_end)switch(a?void 0:e.p[n]){case 40:r=41===e.p[n+1]?ie(e,r,n+2,-2):ie(e,r,n+1,-1);break;case 41:r=ce(e,r,n+1);break;case 36:if(n+1!==e.p_end){a=!0;break}r=e.src.length-r==0?r:null;break;case Et:switch(e.p[n+1]){case 98:null!==(r=se(e,r,n+2))&&(n+=4,u=!0);break;case 102:n+=2,91!==e.p[n]&&ct(e.L,Ot("missing '[' after '%%f' in pattern"));var s=re(e,n),o=r===e.src_init?0:e.src[r-1];if(!ae(e,o,n,s-1)&&ae(e,r===e.src_end?0:e.src[r],n,s-1)){n=s,u=!0;break}r=null;break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:null!==(r=fe(e,r,e.p[n+1]))&&(n+=2,u=!0);break;default:a=!0}break;default:a=!1;var l=re(e,n);if(ue(e,r,n,l))switch(e.p[l]){case 63:var i;null!==(i=t(e,r+1,l+1))?r=i:(n=l+1,u=!0);break;case 43:r++;case 42:r=oe(e,r,n,l);break;case 45:r=le(e,r,n,l);break;default:r++,n=l,u=!0}else{if(42===e.p[l]||63===e.p[l]||45===e.p[l]){n=l+1,u=!0;break}r=null}}return e.matchdepth++,r},pe=function(t,e,r,n){if(e>=t.level)0===e?w(t.L,t.src.subarray(r,n),n-r):ct(t.L,Ot("invalid capture index %%%d"),e+1);else{var a=t.capture[e].len;-1===a&&ct(t.L,Ot("unfinished capture")),-2===a?R(t.L,t.capture[e].init-t.src_init+1):w(t.L,t.src.subarray(t.capture[e].init),a)}},ve=function(t,e,r){var n=0===t.level&&t.src.subarray(e)?1:t.level;ot(t.L,n,"too many captures");for(var a=0;a<n;a++)pe(t,a,e,r);return n},he=function(t,e,r,n,a,u){t.L=e,t.matchdepth=200,t.src=r,t.src_init=0,t.src_end=n,t.p=a,t.p_end=u},Le=function(t){t.level=0,gt.lua_assert(200===t.matchdepth)},de=function(t,e){var r=lt(t,1),n=lt(t,2),a=r.length,u=n.length,s=Ut(_t(t,3,1),a);if(s<1)s=1;else if(s>a+1)return I(t),1;if(e&&(K(t,4)||function(t,e){for(var r=0;r<e;r++)if(-1!==bt(te,t[r]))return!1;return!0}(n,u))){var o=function(t,e,r){var n=r>>>0,a=e.length;if(0===a)return n;for(;-1!==(n=t.indexOf(e[0],n));n++)if(xt(t.subarray(n,n+a),e))return n;return-1}(r.subarray(s-1),n,0);if(o>-1)return R(t,s+o),R(t,s+o+u-1),2}else{var l=new ee(t),i=s-1,c=94===n[0];c&&(n=n.subarray(1),u--),he(l,t,r,a,n,u);do{var f;if(Le(l),null!==(f=_e(l,i,0)))return e?(R(t,i+1),R(t,f),ve(l,null,0)+2):ve(l,i,f)}while(i++<l.src_end&&!c)}return I(t),1},Ae=function(t){var e=X(t,Y(3));e.ms.L=t;for(var r=e.src;r<=e.ms.src_end;r++){Le(e.ms);var n;if(null!==(n=_e(e.ms,r,e.p))&&n!==e.lastmatch)return e.src=e.lastmatch=n,ve(e.ms,r,n)}return 0},ge=function(t,e,r,n,a){var u=t.L;switch(a){case h:C(u,3);var s=ve(t,r,n);T(u,s,1);break;case g:pe(t,0,r,n),k(u,3);break;default:return void function(t,e,r,n){for(var a=t.L,u=H(a,3),s=u.length,o=0;o<s;o++)u[o]!==Et?q(e,u[o]):It(u[++o])?48===u[o]?W(e,t.src.subarray(r,n),n-r):(pe(t,u[o]-49,r,n),dt(a,-1),D(a,-2),tt(e)):(u[o]!==Et&&ct(a,Ot("invalid use of '%c' in replacement string"),Et),q(e,u[o]))}(t,e,r,n)}K(u,-1)?m(u,-1)||ct(u,Ot("invalid replacement value (a %s)"),At(u,-1)):(U(u,1),w(u,t.src.subarray(r,n),n-r)),tt(e)},Te={byte:function(t){var e=lt(t,1),r=e.length,n=Ut(_t(t,2,1),r),a=Ut(_t(t,3,n),r);if(n<1&&(n=1),a>r&&(a=r),n>a)return 0;if(a-n>=Number.MAX_SAFE_INTEGER)return ct(t,"string slice too long");var u=a-n+1;ot(t,u,"string slice too long");for(var s=0;s<u;s++)R(t,e[n+s-1]);return u},char:function(t){for(var e=O(t),r=new Z,n=at(t,r,e),a=1;a<=e;a++){var u=ut(t,a);et(t,u>=0&&u<=255,"value out of range"),n[a-1]=u}return Lt(r,e),1},dump:function(t){var e=new Z,r=K(t,2);return it(t,1,h),G(t,1),nt(t,e),0!==b(t,Nt,e,r)?ct(t,Ot("unable to dump given function")):(ht(e),1)},find:function(t){return de(t,1)},format:function(t){var e=O(t),r=1,n=lt(t,r),u=0,s=new Z;for(nt(t,s);u<n.length;)if(n[u]!==Et)q(s,n[u++]);else if(n[++u]===Et)q(s,n[u++]);else{var l=[];switch(++r>e&&rt(t,r,Ot("no value")),u=jt(t,n,u,l),String.fromCharCode(n[u++])){case"c":q(s,ut(t,r));break;case"d":case"i":case"o":case"u":case"x":case"X":var i=ut(t,r);Ht(l,Ot(o,!0)),$(s,Ot(a(String.fromCharCode.apply(String,l),i)));break;case"a":case"A":Ht(l,Ot(o,!0)),$(s,yt(t,l,st(t,r)));break;case"e":case"E":case"f":case"g":case"G":var c=st(t,r);Ht(l,Ot(o,!0)),$(s,Ot(a(String.fromCharCode.apply(String,l),c)));break;case"q":Ft(t,s,r);break;case"s":var f=dt(t,r);l.length<=2||0===l[2]?tt(s):(et(t,f.length===mt(f),r,"string contains zeros"),bt(l,46)<0&&f.length>=100?tt(s):($(s,Ot(a(String.fromCharCode.apply(String,l),kt(f)))),U(t,1)));break;default:return ct(t,Ot("invalid option '%%%c' to 'format'"),n[u-1])}}return ht(s),1},gmatch:function(t){var e=lt(t,1),r=lt(t,2),a=e.length,u=r.length;G(t,2);var s=new function t(){n(this,t),this.src=NaN,this.p=NaN,this.lastmatch=NaN,this.ms=new ee};return y(t,s),he(s.ms,t,e,a,r,u),s.src=0,s.p=0,s.lastmatch=null,N(t,Ae,3),1},gsub:function(t){var e=lt(t,1),r=e.length,n=lt(t,2),a=n.length,u=null,s=z(t,3),o=_t(t,4,r+1),l=94===n[0],i=0,c=new ee(t),f=new Z;for(et(t,s===d||s===A||s===h||s===g,3,"string/function/table expected"),nt(t,f),l&&(n=n.subarray(1),a--),he(c,t,e,r,n,a),e=0,n=0;i<o;){var _;if(Le(c),null!==(_=_e(c,e,n))&&_!==u)i++,ge(c,f,e,_,s),e=u=_;else{if(!(e<c.src_end))break;q(f,c.src[e++])}if(l)break}return W(f,c.src.subarray(e,c.src_end),c.src_end-e),ht(f),R(t,i),2},len:function(t){return R(t,lt(t,1).length),1},lower:function(t){for(var e=lt(t,1),r=e.length,n=new Uint8Array(r),a=0;a<r;a++){var u=e[a];Dt(u)&&(u|=32),n[a]=u}return P(t,n),1},match:function(t){return de(t,0)},pack:function(t){var e=new Z,r=new Xt(t),n={s:lt(t,1),off:0},a=1,u=0;for(I(t),nt(t,e);n.off<n.s.length;){var s=qt(r,u,n),o=s.opt,l=s.size,i=s.ntoalign;for(u+=i+l;i-- >0;)q(e,0);switch(a++,o){case 0:var c=ut(t,a);if(l<4){var f=1<<8*l-1;et(t,-f<=c&&c<f,a,"integer overflow")}Wt(e,c,r.islittle,l,c<0);break;case 1:var _=ut(t,a);l<4&&et(t,_>>>0<1<<8*l,a,"unsigned overflow"),Wt(e,_>>>0,r.islittle,l,!1);break;case 2:var p=vt(e,l),v=st(t,a),h=new DataView(p.buffer,p.byteOffset,p.byteLength);4===l?h.setFloat32(0,v,r.islittle):h.setFloat64(0,v,r.islittle),Q(e,l);break;case 3:var L=lt(t,a),d=L.length;for(et(t,d<=l,a,"string longer than given size"),W(e,L,d);d++<l;)q(e,0);break;case 4:var A=lt(t,a),g=A.length;et(t,l>=4||g<1<<8*l,a,"string length does not fit in given size"),Wt(e,g,r.islittle,l,0),W(e,A,g),u+=g;break;case 5:var T=lt(t,a),x=T.length;et(t,bt(T,0)<0,a,"strings contains zeros"),W(e,T,x),q(e,0),u+=x+1;break;case 6:q(e,0);case 7:case 8:a--}}return ht(e),1},packsize:function(t){for(var e=new Xt(t),r={s:lt(t,1),off:0},n=0;r.off<r.s.length;){var a=qt(e,n,r),u=a.opt,s=a.size,o=a.ntoalign;switch(et(t,n<=2147483647-(s+=o),1,"format result too large"),n+=s,u){case 4:case 5:rt(t,1,"variable-length format")}}return R(t,n),1},rep:function(t){var e=lt(t,1),r=e.length,n=ut(t,2),a=pt(t,3,""),u=a.length;if(n<=0)S(t,"");else{if(r+u<r||r+u>2147483647/n)return ct(t,Ot("resulting string too large"));for(var s=n*r+(n-1)*u,o=new Z,l=at(t,o,s),i=0;n-- >1;)l.set(e,i),i+=r,u>0&&(l.set(a,i),i+=u);l.set(e,i),Lt(o,s)}return 1},reverse:function(t){for(var e=lt(t,1),r=e.length,n=new Uint8Array(r),a=0;a<r;a++)n[a]=e[r-1-a];return P(t,n),1},sub:function(t){var e=lt(t,1),r=e.length,n=Ut(ut(t,2),r),a=Ut(_t(t,3,-1),r);return n<1&&(n=1),a>r&&(a=r),n<=a?P(t,e.subarray(n-1,n-1+(a-n+1))):S(t,""),1},unpack:function(t){var e=new Xt(t),r={s:lt(t,1),off:0},n=lt(t,2),a=n.length,u=Ut(_t(t,3,1),a)-1,s=0;for(et(t,u<=a&&u>=0,3,"initial position out of string");r.off<r.s.length;){var o=qt(e,u,r),l=o.opt,i=o.size,c=o.ntoalign;switch(u+c+i>a&&rt(t,2,Ot("data string too short")),u+=c,ot(t,2,"too many results"),s++,l){case 0:case 1:var f=Qt(t,n.subarray(u),e.islittle,i,0===l);R(t,f);break;case 2:var _=$t(0,n.subarray(u),e.islittle,i);M(t,_);break;case 3:P(t,n.subarray(u,u+i));break;case 4:var p=Qt(t,n.subarray(u),e.islittle,i,0);et(t,u+p+i<=a,2,"data string too short"),P(t,n.subarray(u+i,u+i+p)),u+=p;break;case 5:var v=bt(n,0,u);-1===v&&(v=n.length-u),P(t,n.subarray(u,v)),u=v+1;break;case 7:case 6:case 8:s--}u+=i}return R(t,u+1),s+1},upper:function(t){for(var e=lt(t,1),r=e.length,n=new Uint8Array(r),a=0;a<r;a++){var u=e[a];Ct(u)&&(u&=223),n[a]=u}return P(t,n),1}};t.exports.luaopen_string=function(t){return ft(t,Te),function(t){x(t,0,1),S(t,""),C(t,-2),B(t,-2),U(t,1),C(t,-2),V(t,-2,Ot("__index",!0)),U(t,1)}(t),1}},function(t,e,r){"use strict";var n=r(2),a=n.lua_gettop,u=n.lua_pushcfunction,s=n.lua_pushfstring,o=n.lua_pushinteger,l=n.lua_pushnil,i=n.lua_pushstring,c=n.lua_pushvalue,f=n.lua_setfield,_=n.lua_tointeger,p=r(7),v=p.luaL_Buffer,h=p.luaL_addvalue,L=p.luaL_argcheck,d=p.luaL_buffinit,A=p.luaL_checkinteger,g=p.luaL_checkstack,T=p.luaL_checkstring,x=p.luaL_error,b=p.luaL_newlib,k=p.luaL_optinteger,O=p.luaL_pushresult,E=r(5),m=E.luastring_of,U=E.to_luastring,N=function(t){return 128===(192&t)},R=function(t,e){return t>=0?t:0-t>e?0:e+t+1},y=[255,127,2047,65535],S=function(t,e){var r=t[e],n=0;if(r<128)n=r;else{for(var a=0;64&r;){var u=t[e+ ++a];if(128!=(192&u))return null;n=n<<6|63&u,r<<=1}if(n|=(127&r)<<5*a,a>3||n>1114111||n<=y[a])return null;e+=a}return{code:n,pos:e+1}},w=U("%U"),I=function(t,e){var r=A(t,e);L(t,0<=r&&r<=1114111,e,"value out of range"),s(t,w,r)},M=function(t){var e=T(t,1),r=e.length,n=_(t,2)-1;if(n<0)n=0;else if(n<r)for(n++;N(e[n]);)n++;if(n>=r)return 0;var a=S(e,n);return null===a||N(e[a.pos])?x(t,U("invalid UTF-8 code")):(o(t,n+1),o(t,a.code),2)},P={char:function(t){var e=a(t);if(1===e)I(t,1);else{var r=new v;d(t,r);for(var n=1;n<=e;n++)I(t,n),h(r);O(r)}return 1},codepoint:function(t){var e=T(t,1),r=R(k(t,2,1),e.length),n=R(k(t,3,r),e.length);if(L(t,r>=1,2,"out of range"),L(t,n<=e.length,3,"out of range"),r>n)return 0;if(n-r>=Number.MAX_SAFE_INTEGER)return x(t,"string slice too long");var a=n-r+1;for(g(t,a,"string slice too long"),a=0,r-=1;r<n;){var u=S(e,r);if(null===u)return x(t,"invalid UTF-8 code");o(t,u.code),r=u.pos,a++}return a},codes:function(t){return T(t,1),u(t,M),c(t,1),o(t,0),3},len:function(t){var e=0,r=T(t,1),n=r.length,a=R(k(t,2,1),n),u=R(k(t,3,-1),n);for(L(t,1<=a&&--a<=n,2,"initial position out of string"),L(t,--u<n,3,"final position out of string");a<=u;){var s=S(r,a);if(null===s)return l(t),o(t,a+1),2;a=s.pos,e++}return o(t,e),1},offset:function(t){var e=T(t,1),r=A(t,2),n=r>=0?1:e.length+1;if(n=R(k(t,3,n),e.length),L(t,1<=n&&--n<=e.length,3,"position out of range"),0===r)for(;n>0&&N(e[n]);)n--;else if(N(e[n])&&x(t,"initial position is a continuation byte"),r<0)for(;r<0&&n>0;){do{n--}while(n>0&&N(e[n]));r++}else for(r--;r>0&&n<e.length;){do{n++}while(N(e[n]));r--}return 0===r?o(t,n+1):l(t),1}},C=m(91,0,45,127,194,45,244,93,91,128,45,191,93,42);t.exports.luaopen_utf8=function(t){return b(t,P),i(t,C),f(t,-2,U("charpattern",!0)),1}},function(t,e,r){"use strict";var n,a=r(2),u=a.LUA_OPLT,s=a.LUA_TNUMBER,o=a.lua_compare,l=a.lua_gettop,i=a.lua_isinteger,c=a.lua_isnoneornil,f=a.lua_pushboolean,_=a.lua_pushinteger,p=a.lua_pushliteral,v=a.lua_pushnil,h=a.lua_pushnumber,L=a.lua_pushvalue,d=a.lua_setfield,A=a.lua_settop,g=a.lua_tointeger,T=a.lua_tointegerx,x=a.lua_type,b=r(7),k=b.luaL_argcheck,O=b.luaL_argerror,E=b.luaL_checkany,m=b.luaL_checkinteger,U=b.luaL_checknumber,N=b.luaL_error,R=b.luaL_newlib,y=b.luaL_optnumber,S=r(3),w=S.LUA_MAXINTEGER,I=S.LUA_MININTEGER,M=S.lua_numbertointeger,P=r(5).to_luastring,C=function(){return n=1103515245*n+12345&2147483647},D=function(t,e){var r=M(e);!1!==r?_(t,r):h(t,e)},V={abs:function(t){if(i(t,1)){var e=g(t,1);e<0&&(e=0|-e),_(t,e)}else h(t,Math.abs(U(t,1)));return 1},acos:function(t){return h(t,Math.acos(U(t,1))),1},asin:function(t){return h(t,Math.asin(U(t,1))),1},atan:function(t){var e=U(t,1),r=y(t,2,1);return h(t,Math.atan2(e,r)),1},ceil:function(t){return i(t,1)?A(t,1):D(t,Math.ceil(U(t,1))),1},cos:function(t){return h(t,Math.cos(U(t,1))),1},deg:function(t){return h(t,U(t,1)*(180/Math.PI)),1},exp:function(t){return h(t,Math.exp(U(t,1))),1},floor:function(t){return i(t,1)?A(t,1):D(t,Math.floor(U(t,1))),1},fmod:function(t){if(i(t,1)&&i(t,2)){var e=g(t,2);0===e?O(t,2,"zero"):_(t,g(t,1)%e|0)}else{var r=U(t,1),n=U(t,2);h(t,r%n)}return 1},log:function(t){var e,r=U(t,1);if(c(t,2))e=Math.log(r);else{var n=U(t,2);e=2===n?Math.log2(r):10===n?Math.log10(r):Math.log(r)/Math.log(n)}return h(t,e),1},max:function(t){var e=l(t),r=1;k(t,e>=1,1,"value expected");for(var n=2;n<=e;n++)o(t,r,n,u)&&(r=n);return L(t,r),1},min:function(t){var e=l(t),r=1;k(t,e>=1,1,"value expected");for(var n=2;n<=e;n++)o(t,n,r,u)&&(r=n);return L(t,r),1},modf:function(t){if(i(t,1))A(t,1),h(t,0);else{var e=U(t,1),r=e<0?Math.ceil(e):Math.floor(e);D(t,r),h(t,e===r?0:e-r)}return 2},rad:function(t){return h(t,U(t,1)*(Math.PI/180)),1},random:function(t){var e,r,a=void 0===n?Math.random():C()/2147483648;switch(l(t)){case 0:return h(t,a),1;case 1:e=1,r=m(t,1);break;case 2:e=m(t,1),r=m(t,2);break;default:return N(t,"wrong number of arguments")}return k(t,e<=r,1,"interval is empty"),k(t,e>=0||r<=w+e,1,"interval too large"),a*=r-e+1,_(t,Math.floor(a)+e),1},randomseed:function(t){return function(t){0==(n=0|t)&&(n=1)}(U(t,1)),C(),0},sin:function(t){return h(t,Math.sin(U(t,1))),1},sqrt:function(t){return h(t,Math.sqrt(U(t,1))),1},tan:function(t){return h(t,Math.tan(U(t,1))),1},tointeger:function(t){var e=T(t,1);return!1!==e?_(t,e):(E(t,1),v(t)),1},type:function(t){return x(t,1)===s?i(t,1)?p(t,"integer"):p(t,"float"):(E(t,1),v(t)),1},ult:function(t){var e=m(t,1),r=m(t,2);return f(t,e>=0?r<0||e<r:r<0&&e<r),1}};t.exports.luaopen_math=function(t){return R(t,V),h(t,Math.PI),d(t,-2,P("pi",!0)),h(t,1/0),d(t,-2,P("huge",!0)),_(t,w),d(t,-2,P("maxinteger",!0)),_(t,I),d(t,-2,P("mininteger",!0)),1}},function(t,e,r){"use strict";var n,a=r(2),u=a.LUA_MASKCALL,s=a.LUA_MASKCOUNT,o=a.LUA_MASKLINE,l=a.LUA_MASKRET,i=a.LUA_REGISTRYINDEX,c=a.LUA_TFUNCTION,f=a.LUA_TNIL,_=a.LUA_TTABLE,p=a.LUA_TUSERDATA,v=a.lua_Debug,h=a.lua_call,L=a.lua_checkstack,d=a.lua_gethook,A=a.lua_gethookcount,g=a.lua_gethookmask,T=a.lua_getinfo,x=a.lua_getlocal,b=a.lua_getmetatable,k=a.lua_getstack,O=a.lua_getupvalue,E=a.lua_getuservalue,m=a.lua_insert,U=a.lua_iscfunction,N=a.lua_isfunction,R=a.lua_isnoneornil,y=a.lua_isthread,S=a.lua_newtable,w=a.lua_pcall,I=a.lua_pop,M=a.lua_pushboolean,P=a.lua_pushfstring,C=a.lua_pushinteger,D=a.lua_pushlightuserdata,V=a.lua_pushliteral,B=a.lua_pushnil,G=a.lua_pushstring,K=a.lua_pushvalue,F=a.lua_rawgetp,j=a.lua_rawsetp,H=a.lua_rotate,X=a.lua_setfield,z=a.lua_sethook,Y=a.lua_setlocal,J=a.lua_setmetatable,Z=a.lua_settop,q=a.lua_setupvalue,W=a.lua_setuservalue,Q=a.lua_tojsstring,$=a.lua_toproxy,tt=a.lua_tostring,et=a.lua_tothread,rt=a.lua_touserdata,nt=a.lua_type,at=a.lua_upvalueid,ut=a.lua_upvaluejoin,st=a.lua_xmove,ot=r(7),lt=ot.luaL_argcheck,it=ot.luaL_argerror,ct=ot.luaL_checkany,ft=ot.luaL_checkinteger,_t=ot.luaL_checkstring,pt=ot.luaL_checktype,vt=ot.luaL_error,ht=ot.luaL_loadbuffer,Lt=ot.luaL_newlib,dt=ot.luaL_optinteger,At=ot.luaL_optstring,gt=ot.luaL_traceback,Tt=ot.lua_writestringerror,xt=r(17),bt=r(5),kt=bt.luastring_indexOf,Ot=bt.to_luastring,Et=function(t,e,r){t===e||L(e,r)||vt(t,Ot("stack overflow",!0))},mt=function(t){return y(t,1)?{arg:1,thread:et(t,1)}:{arg:0,thread:t}},Ut=function(t,e,r){G(t,r),X(t,-2,e)},Nt=function(t,e,r){C(t,r),X(t,-2,e)},Rt=function(t,e,r){M(t,r),X(t,-2,e)},yt=function(t,e,r){t==e?H(t,-2,1):st(e,t,1),X(t,-2,r)},St=function(t,e){var r=ft(t,2);pt(t,1,c);var n=e?O(t,1,r):q(t,1,r);return null===n?0:(G(t,n),m(t,-(e+1)),e+1)},wt=function(t,e,r){var n=ft(t,r);return pt(t,e,c),lt(t,null!==O(t,e,n),r,"invalid upvalue index"),n},It=Ot("__hooks__",!0),Mt=["call","return","line","count","tail call"].map(function(t){return Ot(t)}),Pt=function(t,e){F(t,i,It);var r=rt(t,-1).get(t);r&&(r(t),G(t,Mt[e.event]),e.currentline>=0?C(t,e.currentline):B(t),xt.lua_assert(T(t,Ot("lS"),e)),h(t,2,0))},Ct={gethook:function(t){var e=mt(t).thread,r=new Uint8Array(5),n=g(e),a=d(e);null===a?B(t):a!==Pt?V(t,"external hook"):(F(t,i,It),rt(t,-1).get(e)(t));return G(t,function(t,e){var r=0;return t&u&&(e[r++]=99),t&l&&(e[r++]=114),t&o&&(e[r++]=108),e.subarray(0,r)}(n,r)),C(t,A(e)),3},getinfo:function(t){var e=new v,r=mt(t),n=r.arg,a=r.thread,u=At(t,n+2,"flnStu");if(Et(t,a,3),N(t,n+1))u=P(t,Ot(">%s"),u),K(t,n+1),st(t,a,1);else if(!k(a,ft(t,n+1),e))return B(t),1;return T(a,u,e)||it(t,n+2,"invalid option"),S(t),kt(u,83)>-1&&(Ut(t,Ot("source",!0),e.source),Ut(t,Ot("short_src",!0),e.short_src),Nt(t,Ot("linedefined",!0),e.linedefined),Nt(t,Ot("lastlinedefined",!0),e.lastlinedefined),Ut(t,Ot("what",!0),e.what)),kt(u,108)>-1&&Nt(t,Ot("currentline",!0),e.currentline),kt(u,117)>-1&&(Nt(t,Ot("nups",!0),e.nups),Nt(t,Ot("nparams",!0),e.nparams),Rt(t,Ot("isvararg",!0),e.isvararg)),kt(u,110)>-1&&(Ut(t,Ot("name",!0),e.name),Ut(t,Ot("namewhat",!0),e.namewhat)),kt(u,116)>-1&&Rt(t,Ot("istailcall",!0),e.istailcall),kt(u,76)>-1&&yt(t,a,Ot("activelines",!0)),kt(u,102)>-1&&yt(t,a,Ot("func",!0)),1},getlocal:function(t){var e=mt(t),r=e.thread,n=e.arg,a=new v,u=ft(t,n+2);if(N(t,n+1))return K(t,n+1),G(t,x(t,null,u)),1;var s=ft(t,n+1);if(!k(r,s,a))return it(t,n+1,"level out of range");Et(t,r,1);var o=x(r,a,u);return o?(st(r,t,1),G(t,o),H(t,-2,1),2):(B(t),1)},getmetatable:function(t){return ct(t,1),b(t,1)||B(t),1},getregistry:function(t){return K(t,i),1},getupvalue:function(t){return St(t,1)},getuservalue:function(t){return nt(t,1)!==p?B(t):E(t,1),1},sethook:function(t){var e,r,n,a,_=mt(t),p=_.thread,v=_.arg;if(R(t,v+1))Z(t,v+1),n=null,e=0,r=0;else{var h=_t(t,v+2);pt(t,v+1,c),r=dt(t,v+3,0),n=Pt,e=function(t,e){var r=0;return kt(t,99)>-1&&(r|=u),kt(t,114)>-1&&(r|=l),kt(t,108)>-1&&(r|=o),e>0&&(r|=s),r}(h,r)}F(t,i,It)===f?(a=new WeakMap,D(t,a),j(t,i,It)):a=rt(t,-1);var L=$(t,v+1);return a.set(p,L),z(p,n,e,r),0},setlocal:function(t){var e=mt(t),r=e.thread,n=e.arg,a=new v,u=ft(t,n+1),s=ft(t,n+2);if(!k(r,u,a))return it(t,n+1,"level out of range");ct(t,n+3),Z(t,n+3),Et(t,r,1),st(t,r,1);var o=Y(r,a,s);return null===o&&I(r,1),G(t,o),1},setmetatable:function(t){var e=nt(t,2);return lt(t,e==f||e==_,2,"nil or table expected"),Z(t,2),J(t,1),1},setupvalue:function(t){return ct(t,3),St(t,0)},setuservalue:function(t){return pt(t,1,p),ct(t,2),Z(t,2),W(t,1),1},traceback:function(t){var e=mt(t),r=e.thread,n=e.arg,a=tt(t,n+1);if(null!==a||R(t,n+1)){var u=dt(t,n+2,t===r?1:0);gt(t,r,a,u)}else K(t,n+1);return 1},upvalueid:function(t){var e=wt(t,1,2);return D(t,at(t,1,e)),1},upvaluejoin:function(t){var e=wt(t,1,2),r=wt(t,3,4);return lt(t,!U(t,1),1,"Lua function expected"),lt(t,!U(t,3),3,"Lua function expected"),ut(t,1,e,3,r),0}};"undefined"!=typeof window&&(n=function(){var t=prompt("lua_debug>","");return null!==t?t:""}),n&&(Ct.debug=function(t){for(;;){var e=n();if("cont"===e)return 0;if(0!==e.length){var r=Ot(e);(ht(t,r,r.length,Ot("=(debug command)",!0))||w(t,0,0,0))&&Tt(Q(t,-1),"\n"),Z(t,0)}}});t.exports.luaopen_debug=function(t){return Lt(t,Ct),1}},function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var a,u=r(3),s=u.LUA_DIRSEP,o=u.LUA_EXEC_DIR,l=u.LUA_JSPATH_DEFAULT,i=u.LUA_PATH_DEFAULT,c=u.LUA_PATH_MARK,f=u.LUA_PATH_SEP,_=r(2),p=_.LUA_OK,v=_.LUA_REGISTRYINDEX,h=_.LUA_TNIL,L=_.LUA_TTABLE,d=_.lua_callk,A=_.lua_createtable,g=_.lua_getfield,T=_.lua_insert,x=_.lua_isfunction,b=_.lua_isnil,k=_.lua_isstring,O=_.lua_newtable,E=_.lua_pop,m=_.lua_pushboolean,U=_.lua_pushcclosure,N=_.lua_pushcfunction,R=_.lua_pushfstring,y=_.lua_pushglobaltable,S=_.lua_pushlightuserdata,w=_.lua_pushliteral,I=_.lua_pushlstring,M=_.lua_pushnil,P=_.lua_pushstring,C=_.lua_pushvalue,D=_.lua_rawgeti,V=_.lua_rawgetp,B=_.lua_rawseti,G=_.lua_rawsetp,K=_.lua_remove,F=_.lua_setfield,j=_.lua_setmetatable,H=_.lua_settop,X=_.lua_toboolean,z=_.lua_tostring,Y=_.lua_touserdata,J=_.lua_upvalueindex,Z=r(7),q=Z.LUA_LOADED_TABLE,W=Z.LUA_PRELOAD_TABLE,Q=Z.luaL_Buffer,$=Z.luaL_addvalue,tt=Z.luaL_buffinit,et=Z.luaL_checkstring,rt=Z.luaL_error,nt=Z.luaL_getsubtable,at=Z.luaL_gsub,ut=Z.luaL_len,st=Z.luaL_loadfile,ot=Z.luaL_newlib,lt=Z.luaL_optstring,it=Z.luaL_pushresult,ct=Z.luaL_setfuncs,ft=r(17),_t=r(5),pt=_t.luastring_indexOf,vt=_t.to_jsstring,ht=_t.to_luastring,Lt=_t.to_uristring,dt=r(0),At="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:(0,eval)("this"),gt=ht("__JSLIBS__"),Tt=s,xt=s,bt=ht("luaopen_"),kt=ht("_"),Ot=ht("");a=function(t,e,r){e=Lt(e);var a=new XMLHttpRequest;if(a.open("GET",e,!1),a.send(),a.status<200||a.status>=300)return P(t,ht("".concat(a.status,": ").concat(a.statusText))),null;var u,s=a.response;/\/\/[#@] sourceURL=/.test(s)||(s+=" //# sourceURL="+e);try{u=Function("fengari",s)}catch(e){return P(t,ht("".concat(e.name,": ").concat(e.message))),null}var o=u(dt);return"function"==typeof o||"object"===n(o)&&null!==o?o:void 0===o?At:(P(t,ht("library returned unexpected type (".concat(n(o),")"))),null)};var Et;Et=function(t){t=Lt(t);var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(),e.status>=200&&e.status<=299};var mt=function(t,e,r){var n=Rt(t,e);if(null===n){if(null===(n=a(t,e,r[0]==="*".charCodeAt(0))))return 1;yt(t,e,n)}if(r[0]==="*".charCodeAt(0))return m(t,1),0;var u=function(t,e,r){var n=e[vt(r)];return n&&"function"==typeof n?n:(R(t,ht("undefined symbol: %s"),r),null)}(t,n,r);return null===u?2:(N(t,u),0)},Ut=At,Nt=function(t,e,r,n){var a="".concat(r).concat(ft.LUA_VERSUFFIX);P(t,ht(a));var u=Ut[a];void 0===u&&(u=Ut[r]),void 0===u||function(t){g(t,v,ht("LUA_NOENV"));var e=X(t,-1);return E(t,1),e}(t)?P(t,n):(u=at(t,ht(u),ht(f+f,!0),ht(f+vt(Ot)+f,!0)),at(t,u,Ot,n),K(t,-2)),F(t,-3,e),E(t,1)},Rt=function(t,e){V(t,v,gt),g(t,-1,e);var r=Y(t,-1);return E(t,2),r},yt=function(t,e,r){V(t,v,gt),S(t,r),C(t,-1),F(t,-3,e),B(t,-2,ut(t,-2)+1),E(t,1)},St=function(t,e){for(;e[0]===f.charCodeAt(0);)e=e.subarray(1);if(0===e.length)return null;var r=pt(e,f.charCodeAt(0));return r<0&&(r=e.length),I(t,e,r),e.subarray(r)},wt=function(t,e,r,n,a){var u=new Q;for(tt(t,u),0!==n[0]&&(e=at(t,e,n,a));null!==(r=St(t,r));){var s=at(t,z(t,-1),ht(c,!0),e);if(K(t,-2),Et(s))return s;R(t,ht("\n\tno file '%s'"),s),K(t,-2),$(u)}return it(u),null},It=function(t,e,r,n){g(t,J(1),r);var a=z(t,-1);return null===a&&rt(t,ht("'package.%s' must be a string"),r),wt(t,e,a,ht("."),n)},Mt=function(t,e,r){return e?(P(t,r),2):rt(t,ht("error loading module '%s' from file '%s':\n\t%s"),z(t,1),r,z(t,-1))},Pt=function(t){var e=et(t,1),r=It(t,e,ht("path",!0),ht(xt,!0));return null===r?1:Mt(t,st(t,r)===p,r)},Ct=function(t,e,r){var n;r=at(t,r,ht("."),kt);var a=pt(r,"-".charCodeAt(0));if(a>=0){n=I(t,r,a),n=R(t,ht("%s%s"),bt,n);var u=mt(t,e,n);if(2!==u)return u;r=a+1}return n=R(t,ht("%s%s"),bt,r),mt(t,e,n)},Dt=function(t){var e=et(t,1),r=It(t,e,ht("jspath",!0),ht(Tt,!0));return null===r?1:Mt(t,0===Ct(t,r,e),r)},Vt=function(t){var e,r=et(t,1),n=pt(r,".".charCodeAt(0));if(n<0)return 0;I(t,r,n);var a=It(t,z(t,-1),ht("jspath",!0),ht(Tt,!0));return null===a?1:0!==(e=Ct(t,a,r))?2!=e?Mt(t,0,a):(P(t,ht("\n\tno module '%s' in file '%s'"),r,a),1):(P(t,a),2)},Bt=function(t){var e=et(t,1);return g(t,v,W),g(t,-1,e)===h&&R(t,ht("\n\tno field package.preload['%s']"),e),1},Gt=function t(e,r,n){for(;r===p?(D(e,3,n.i)===h&&(E(e,1),it(n.msg),rt(e,ht("module '%s' not found:%s"),n.name,z(e,-1))),P(e,n.name),d(e,1,2,n,t)):r=p,!x(e,-2);n.i++)k(e,-2)?(E(e,1),$(n.msg)):E(e,2);return n.k(e,p,n.ctx)},Kt=function(t,e,r){return P(t,r),T(t,-2),d(t,2,1,r,Ft),Ft(t,p,r)},Ft=function(t,e,r){var n=r;return b(t,-1)||F(t,2,n),g(t,2,n)==h&&(m(t,1),C(t,-1),F(t,2,n)),1},jt={loadlib:function(t){var e=et(t,1),r=et(t,2),n=mt(t,e,r);return 0===n?1:(M(t),T(t,-2),w(t,1===n?"open":"init"),3)},searchpath:function(t){return null!==wt(t,et(t,1),et(t,2),lt(t,3,"."),lt(t,4,s))?1:(M(t),T(t,-2),2)}},Ht={require:function(t){var e=et(t,1);return H(t,1),g(t,v,q),g(t,2,e),X(t,-1)?1:(E(t,1),function(t,e,r,n){var a=new Q;return tt(t,a),g(t,J(1),ht("searchers",!0))!==L&&rt(t,ht("'package.searchers' must be a table")),Gt(t,p,{name:e,i:1,msg:a,ctx:r,k:n})}(t,e,e,Kt))}};t.exports.luaopen_package=function(t){return function(t){O(t),A(t,0,1),j(t,-2),G(t,v,gt)}(t),ot(t,jt),function(t){var e=[Bt,Pt,Dt,Vt,null];A(t);for(var r=0;e[r];r++)C(t,-2),U(t,e[r],1),B(t,-2,r+1);F(t,-2,ht("searchers",!0))}(t),Nt(t,ht("path",!0),"LUA_PATH",i),Nt(t,ht("jspath",!0),"LUA_JSPATH",l),w(t,s+"\n"+f+"\n"+c+"\n"+o+"\n-\n"),F(t,-2,ht("config",!0)),nt(t,v,q),F(t,-2,ht("loaded",!0)),nt(t,v,W),F(t,-2,ht("preload",!0)),y(t),C(t,-2),ct(t,Ht,1),E(t,1),1}},function(t,e,r){var n=r(2),a=n.lua_pushinteger,u=n.lua_pushliteral,s=n.lua_setfield,o=r(7).luaL_newlib,l=r(5),i=l.FENGARI_AUTHORS,c=l.FENGARI_COPYRIGHT,f=l.FENGARI_RELEASE,_=l.FENGARI_VERSION,p=l.FENGARI_VERSION_MAJOR,v=l.FENGARI_VERSION_MINOR,h=l.FENGARI_VERSION_NUM,L=l.FENGARI_VERSION_RELEASE,d=l.to_luastring;t.exports.luaopen_fengari=function(t){return o(t,{}),u(t,i),s(t,-2,d("AUTHORS")),u(t,c),s(t,-2,d("COPYRIGHT")),u(t,f),s(t,-2,d("RELEASE")),u(t,_),s(t,-2,d("VERSION")),u(t,p),s(t,-2,d("VERSION_MAJOR")),u(t,v),s(t,-2,d("VERSION_MINOR")),a(t,h),s(t,-2,d("VERSION_NUM")),u(t,L),s(t,-2,d("VERSION_RELEASE")),1}},function(t,e,r){"use strict";r.r(e),r.d(e,"L",function(){return R}),r.d(e,"load",function(){return y});var n=r(0);r.d(e,"FENGARI_AUTHORS",function(){return n.FENGARI_AUTHORS}),r.d(e,"FENGARI_COPYRIGHT",function(){return n.FENGARI_COPYRIGHT}),r.d(e,"FENGARI_RELEASE",function(){return n.FENGARI_RELEASE}),r.d(e,"FENGARI_VERSION",function(){return n.FENGARI_VERSION}),r.d(e,"FENGARI_VERSION_MAJOR",function(){return n.FENGARI_VERSION_MAJOR}),r.d(e,"FENGARI_VERSION_MINOR",function(){return n.FENGARI_VERSION_MINOR}),r.d(e,"FENGARI_VERSION_NUM",function(){return n.FENGARI_VERSION_NUM}),r.d(e,"FENGARI_VERSION_RELEASE",function(){return n.FENGARI_VERSION_RELEASE}),r.d(e,"luastring_eq",function(){return n.luastring_eq}),r.d(e,"luastring_indexOf",function(){return n.luastring_indexOf}),r.d(e,"luastring_of",function(){return n.luastring_of}),r.d(e,"to_jsstring",function(){return n.to_jsstring}),r.d(e,"to_luastring",function(){return n.to_luastring}),r.d(e,"to_uristring",function(){return n.to_uristring}),r.d(e,"lua",function(){return n.lua}),r.d(e,"lauxlib",function(){return n.lauxlib}),r.d(e,"lualib",function(){return n.lualib});var a=r(18);r.d(e,"interop",function(){return a});var u=n.lua.LUA_ERRRUN,s=n.lua.LUA_ERRSYNTAX,o=n.lua.LUA_OK,l=n.lua.LUA_VERSION_MAJOR,i=n.lua.LUA_VERSION_MINOR,c=n.lua.lua_Debug,f=n.lua.lua_getinfo,_=n.lua.lua_getstack,p=n.lua.lua_gettop,v=n.lua.lua_insert,h=n.lua.lua_pcall,L=n.lua.lua_pop,d=n.lua.lua_pushcfunction,A=n.lua.lua_pushstring,g=n.lua.lua_remove,T=n.lua.lua_setglobal,x=n.lua.lua_tojsstring,b=n.lauxlib.luaL_loadbuffer,k=n.lauxlib.luaL_newstate,O=n.lauxlib.luaL_requiref,E=a.checkjs,m=a.luaopen_js,U=a.push,N=a.tojs,R=k();function y(t,e){if("string"==typeof t)t=Object(n.to_luastring)(t);else if(!(t instanceof Uint8Array))throw new TypeError("expects an array of bytes or javascript string");e=e?Object(n.to_luastring)(e):null;var r,a=b(R,t,null,e);if(r=a===s?new SyntaxError(x(R,-1)):N(R,-1),L(R,1),a!==o)throw r;return r}if(n.lualib.luaL_openlibs(R),O(R,Object(n.to_luastring)("js"),m,1),L(R,1),A(R,Object(n.to_luastring)(n.FENGARI_COPYRIGHT)),T(R,Object(n.to_luastring)("_COPYRIGHT")),"undefined"!=typeof document&&document instanceof HTMLDocument){var S=function(t){var e=new c;return _(t,2,e)&&f(t,Object(n.to_luastring)("Sl"),e),U(t,new ErrorEvent("error",{bubbles:!0,cancelable:!0,message:x(t,1),error:N(t,1),filename:e.short_src?Object(n.to_jsstring)(e.short_src):void 0,lineno:e.currentline>0?e.currentline:void 0})),1},w=function(t,e,r){var n,a=b(R,e,null,r);if(a===s){var l=x(R,-1),i=t.src?t.src:document.location,c=new SyntaxError(l,i,void 0);n=new ErrorEvent("error",{message:l,error:c,filename:i,lineno:void 0})}else if(a===o){var f=p(R);d(R,S),v(R,f),Object.defineProperty(document,"currentScript",{value:t,configurable:!0}),a=h(R,0,0,f),delete document.currentScript,g(R,f),a===u&&(n=E(R,-1))}a!==o&&(void 0===n&&(n=new ErrorEvent("error",{message:x(R,-1),error:N(R,-1)})),L(R,1),window.dispatchEvent(n)&&console.error("uncaught exception",n.error))},I=function(t,e,r){if(t.status>=200&&t.status<300){var a=t.response;a="string"==typeof a?Object(n.to_luastring)(t.response):new Uint8Array(a),w(e,a,r)}else e.dispatchEvent(new Event("error"))},M=/^(.*?\/.*?)([\t ]*;.*)?$/,P=/^(\d+)\.(\d+)$/,C=function(t){if("SCRIPT"===t.tagName){var e=M.exec(t.type);if(e){var r=e[1];if("application/lua"===r||"text/lua"===r){if(t.hasAttribute("lua-version")){var a=P.exec(t.getAttribute("lua-version"));if(!a||a[1]!==l||a[2]!==i)return}!function(t){if(t.src){var e=Object(n.to_luastring)("@"+t.src);if("complete"===document.readyState||t.async)if("function"==typeof fetch)fetch(t.src,{method:"GET",credentials:function(t){switch(t){case"anonymous":return"omit";case"use-credentials":return"include";default:return"same-origin"}}(t.crossorigin),redirect:"follow",integrity:t.integrity}).then(function(t){if(t.ok)return t.arrayBuffer();throw new Error("unable to fetch")}).then(function(r){var n=new Uint8Array(r);w(t,n,e)}).catch(function(e){t.dispatchEvent(new Event("error"))});else{var r=new XMLHttpRequest;r.open("GET",t.src,!0),r.responseType="arraybuffer",r.onreadystatechange=function(){4===r.readyState&&I(r,t,e)},r.send()}else{var a=new XMLHttpRequest;a.open("GET",t.src,!1),a.send(),I(a,t,e)}}else{var u=Object(n.to_luastring)(t.innerHTML),s=t.id?Object(n.to_luastring)("="+t.id):u;w(t,u,s)}}(t)}}}};"undefined"!=typeof MutationObserver?new MutationObserver(function(t,e){for(var r=0;r<t.length;r++)for(var n=t[r],a=0;a<n.addedNodes.length;a++)C(n.addedNodes[a])}).observe(document,{childList:!0,subtree:!0}):console.warn&&console.warn("fengari-web: MutationObserver not found; lua script tags will not be run when inserted");Array.prototype.forEach.call(document.querySelectorAll('script[type^="application/lua"], script[type^="text/lua"]'),C)}},function(t,e,r){"use strict";var n=r(1),a=n.LUA_MULTRET,u=n.LUA_OPADD,s=n.LUA_OPBAND,o=n.LUA_OPBNOT,l=n.LUA_OPBOR,i=n.LUA_OPBXOR,c=n.LUA_OPDIV,f=n.LUA_OPIDIV,_=n.LUA_OPMOD,p=n.LUA_OPSHL,v=n.LUA_OPSHR,h=n.LUA_OPUNM,L=n.constant_types,d=L.LUA_TBOOLEAN,A=L.LUA_TLIGHTUSERDATA,g=L.LUA_TLNGSTR,T=L.LUA_TNIL,x=L.LUA_TNUMFLT,b=L.LUA_TNUMINT,k=L.LUA_TTABLE,O=n.to_luastring,E=r(4).lua_assert,m=r(21),U=r(6),N=r(16),R=r(23),y=r(9),S=r(15),w=N.OpCodesI,I=U.TValue,M={OPR_ADD:0,OPR_SUB:1,OPR_MUL:2,OPR_MOD:3,OPR_POW:4,OPR_DIV:5,OPR_IDIV:6,OPR_BAND:7,OPR_BOR:8,OPR_BXOR:9,OPR_SHL:10,OPR_SHR:11,OPR_CONCAT:12,OPR_EQ:13,OPR_LT:14,OPR_LE:15,OPR_NE:16,OPR_GT:17,OPR_GE:18,OPR_AND:19,OPR_OR:20,OPR_NOBINOPR:21},P={OPR_MINUS:0,OPR_BNOT:1,OPR_NOT:2,OPR_LEN:3,OPR_NOUNOPR:4},C=function(t){return t.t!==t.f},D=function(t,e){var r=R.expkind;if(C(t))return!1;switch(t.k){case r.VKINT:return!e||new I(b,t.u.ival);case r.VKFLT:return!e||new I(x,t.u.nval);default:return!1}},V=function(t,e,r){var n,a=e+r-1;if(t.pc>t.lasttarget&&(n=t.f.code[t.pc-1]).opcode===w.OP_LOADNIL){var u=n.A,s=u+n.B;if(u<=e&&e<=s+1||e<=u&&u<=a+1)return u<e&&(e=u),s>a&&(a=s),N.SETARG_A(n,e),void N.SETARG_B(n,a-e)}tt(t,w.OP_LOADNIL,e,r-1,0)},B=function(t,e){return t.f.code[e.u.info]},G=function(t,e){var r=t.f.code[e].sBx;return-1===r?-1:e+1+r},K=function(t,e,r){var n=t.f.code[e],a=r-(e+1);E(-1!==r),Math.abs(a)>N.MAXARG_sBx&&m.luaX_syntaxerror(t.ls,O("control structure too long",!0)),N.SETARG_sBx(n,a)},F=function(t,e,r){if(-1===r)return e;if(-1===e)e=r;else{for(var n=e,a=G(t,n);-1!==a;)a=G(t,n=a);K(t,n,r)}return e},j=function(t){var e=t.jpc;t.jpc=-1;var r=rt(t,w.OP_JMP,0,-1);return r=F(t,r,e)},H=function(t,e,r,n,a){return tt(t,e,r,n,a),j(t)},X=function(t){return t.lasttarget=t.pc,t.pc},z=function(t,e){return e>=1&&N.testTMode(t.f.code[e-1].opcode)?e-1:e},Y=function(t,e){return t.f.code[z(t,e)]},J=function(t,e,r){var n=z(t,e),a=t.f.code[n];return a.opcode===w.OP_TESTSET&&(r!==N.NO_REG&&r!==a.B?N.SETARG_A(a,r):t.f.code[n]=N.CREATE_ABC(w.OP_TEST,a.B,0,a.C),!0)},Z=function(t,e){for(;-1!==e;e=G(t,e))J(t,e,N.NO_REG)},q=function(t,e,r,n,a){for(;-1!==e;){var u=G(t,e);J(t,e,n)?K(t,e,r):K(t,e,a),e=u}},W=function(t,e){X(t),t.jpc=F(t,t.jpc,e)},Q=function(t,e,r){r===t.pc?W(t,e):(E(r<t.pc),q(t,e,r,N.NO_REG,r))},$=function(t,e){var r=t.f;return function(t){q(t,t.jpc,t.pc,N.NO_REG,t.pc),t.jpc=-1}(t),r.code[t.pc]=e,r.lineinfo[t.pc]=t.ls.lastline,t.pc++},tt=function(t,e,r,n,a){return E(N.getOpMode(e)===N.iABC),E(N.getBMode(e)!==N.OpArgN||0===n),E(N.getCMode(e)!==N.OpArgN||0===a),E(r<=N.MAXARG_A&&n<=N.MAXARG_B&&a<=N.MAXARG_C),$(t,N.CREATE_ABC(e,r,n,a))},et=function(t,e,r,n){return E(N.getOpMode(e)===N.iABx||N.getOpMode(e)===N.iAsBx),E(N.getCMode(e)===N.OpArgN),E(r<=N.MAXARG_A&&n<=N.MAXARG_Bx),$(t,N.CREATE_ABx(e,r,n))},rt=function(t,e,r,n){return et(t,e,r,n+N.MAXARG_sBx)},nt=function(t,e){return E(e<=N.MAXARG_Ax),$(t,N.CREATE_Ax(w.OP_EXTRAARG,e))},at=function(t,e,r){if(r<=N.MAXARG_Bx)return et(t,w.OP_LOADK,e,r);var n=et(t,w.OP_LOADKX,e,0);return nt(t,r),n},ut=function(t,e){var r=t.freereg+e;r>t.f.maxstacksize&&(r>=255&&m.luaX_syntaxerror(t.ls,O("function or expression needs too many registers",!0)),t.f.maxstacksize=r)},st=function(t,e){ut(t,e),t.freereg+=e},ot=function(t,e){!N.ISK(e)&&e>=t.nactvar&&(t.freereg--,E(e===t.freereg))},lt=function(t,e){e.k===R.expkind.VNONRELOC&&ot(t,e.u.info)},it=function(t,e,r){var n=e.k===R.expkind.VNONRELOC?e.u.info:-1,a=r.k===R.expkind.VNONRELOC?r.u.info:-1;n>a?(ot(t,n),ot(t,a)):(ot(t,a),ot(t,n))},ct=function(t,e,r){var n=t.f,a=y.luaH_get(t.L,t.ls.h,e);if(a.ttisinteger()){var u=a.value;if(u<t.nk&&n.k[u].ttype()===r.ttype()&&n.k[u].value===r.value)return u}var s=t.nk;return y.luaH_setfrom(t.L,t.ls.h,e,new U.TValue(b,s)),n.k[s]=r,t.nk++,s},ft=function(t,e){var r=new I(A,e),n=new I(b,e);return ct(t,r,n)},_t=function(t,e){var r=new I(x,e);return ct(t,r,r)},pt=function(t,e){var r=new I(d,e);return ct(t,r,r)},vt=function(t,e,r){var n=R.expkind;if(e.k===n.VCALL)N.SETARG_C(B(t,e),r+1);else if(e.k===n.VVARARG){var u=B(t,e);N.SETARG_B(u,r+1),N.SETARG_A(u,t.freereg),st(t,1)}else E(r===a)},ht=function(t,e){var r=R.expkind;e.k===r.VCALL?(E(2===B(t,e).C),e.k=r.VNONRELOC,e.u.info=B(t,e).A):e.k===r.VVARARG&&(N.SETARG_B(B(t,e),2),e.k=r.VRELOCABLE)},Lt=function(t,e){var r=R.expkind;switch(e.k){case r.VLOCAL:e.k=r.VNONRELOC;break;case r.VUPVAL:e.u.info=tt(t,w.OP_GETUPVAL,0,e.u.info,0),e.k=r.VRELOCABLE;break;case r.VINDEXED:var n;ot(t,e.u.ind.idx),e.u.ind.vt===r.VLOCAL?(ot(t,e.u.ind.t),n=w.OP_GETTABLE):(E(e.u.ind.vt===r.VUPVAL),n=w.OP_GETTABUP),e.u.info=tt(t,n,0,e.u.ind.t,e.u.ind.idx),e.k=r.VRELOCABLE;break;case r.VVARARG:case r.VCALL:ht(t,e)}},dt=function(t,e,r,n){return X(t),tt(t,w.OP_LOADBOOL,e,r,n)},At=function(t,e,r){var n=R.expkind;switch(Lt(t,e),e.k){case n.VNIL:V(t,r,1);break;case n.VFALSE:case n.VTRUE:tt(t,w.OP_LOADBOOL,r,e.k===n.VTRUE,0);break;case n.VK:at(t,r,e.u.info);break;case n.VKFLT:at(t,r,_t(t,e.u.nval));break;case n.VKINT:at(t,r,ft(t,e.u.ival));break;case n.VRELOCABLE:var a=B(t,e);N.SETARG_A(a,r);break;case n.VNONRELOC:r!==e.u.info&&tt(t,w.OP_MOVE,r,e.u.info,0);break;default:return void E(e.k===n.VJMP)}e.u.info=r,e.k=n.VNONRELOC},gt=function(t,e){e.k!==R.expkind.VNONRELOC&&(st(t,1),At(t,e,t.freereg-1))},Tt=function(t,e){for(;-1!==e;e=G(t,e)){if(Y(t,e).opcode!==w.OP_TESTSET)return!0}return!1},xt=function(t,e,r){var n=R.expkind;if(At(t,e,r),e.k===n.VJMP&&(e.t=F(t,e.t,e.u.info)),C(e)){var a,u=-1,s=-1;if(Tt(t,e.t)||Tt(t,e.f)){var o=e.k===n.VJMP?-1:j(t);u=dt(t,r,0,1),s=dt(t,r,1,0),W(t,o)}a=X(t),q(t,e.f,a,r,u),q(t,e.t,a,r,s)}e.f=e.t=-1,e.u.info=r,e.k=n.VNONRELOC},bt=function(t,e){Lt(t,e),lt(t,e),st(t,1),xt(t,e,t.freereg-1)},kt=function(t,e){if(Lt(t,e),e.k===R.expkind.VNONRELOC){if(!C(e))return e.u.info;if(e.u.info>=t.nactvar)return xt(t,e,e.u.info),e.u.info}return bt(t,e),e.u.info},Ot=function(t,e){C(e)?kt(t,e):Lt(t,e)},Et=function(t,e){var r=R.expkind,n=!1;switch(Ot(t,e),e.k){case r.VTRUE:e.u.info=pt(t,!0),n=!0;break;case r.VFALSE:e.u.info=pt(t,!1),n=!0;break;case r.VNIL:e.u.info=function(t){var e=new I(T,null),r=new I(k,t.ls.h);return ct(t,r,e)}(t),n=!0;break;case r.VKINT:e.u.info=ft(t,e.u.ival),n=!0;break;case r.VKFLT:e.u.info=_t(t,e.u.nval),n=!0;break;case r.VK:n=!0}return n&&(e.k=r.VK,e.u.info<=N.MAXINDEXRK)?N.RKASK(e.u.info):kt(t,e)},mt=function(t,e){var r=Y(t,e.u.info);E(N.testTMode(r.opcode)&&r.opcode!==w.OP_TESTSET&&r.opcode!==w.OP_TEST),N.SETARG_A(r,!r.A)},Ut=function(t,e,r){if(e.k===R.expkind.VRELOCABLE){var n=B(t,e);if(n.opcode===w.OP_NOT)return t.pc--,H(t,w.OP_TEST,n.B,0,!r)}return gt(t,e),lt(t,e),H(t,w.OP_TESTSET,N.NO_REG,e.u.info,r)},Nt=function(t,e){var r,n=R.expkind;switch(Lt(t,e),e.k){case n.VJMP:mt(t,e),r=e.u.info;break;case n.VK:case n.VKFLT:case n.VKINT:case n.VTRUE:r=-1;break;default:r=Ut(t,e,0)}e.f=F(t,e.f,r),W(t,e.t),e.t=-1},Rt=function(t,e){var r,n=R.expkind;switch(Lt(t,e),e.k){case n.VJMP:r=e.u.info;break;case n.VNIL:case n.VFALSE:r=-1;break;default:r=Ut(t,e,1)}e.t=F(t,e.t,r),W(t,e.f),e.f=-1},yt=function(t,e,r){var n,a,u=R.expkind;if(!(n=D(e,!0))||!(a=D(r,!0))||!function(t,e,r){switch(t){case s:case l:case i:case p:case v:case o:return!1!==S.tointeger(e)&&!1!==S.tointeger(r);case c:case f:case _:return 0!==r.value;default:return 1}}(t,n,a))return 0;var h=new I;if(U.luaO_arith(null,t,n,a,h),h.ttisinteger())e.k=u.VKINT,e.u.ival=h.value;else{var L=h.value;if(isNaN(L)||0===L)return!1;e.k=u.VKFLT,e.u.nval=L}return!0},St=function(t,e,r,n,a){var u=Et(t,n),s=Et(t,r);it(t,r,n),r.u.info=tt(t,e,0,s,u),r.k=R.expkind.VRELOCABLE,wt(t,a)},wt=function(t,e){t.f.lineinfo[t.pc-1]=e};t.exports.BinOpr=M,t.exports.NO_JUMP=-1,t.exports.UnOpr=P,t.exports.getinstruction=B,t.exports.luaK_checkstack=ut,t.exports.luaK_code=$,t.exports.luaK_codeABC=tt,t.exports.luaK_codeABx=et,t.exports.luaK_codeAsBx=rt,t.exports.luaK_codek=at,t.exports.luaK_concat=F,t.exports.luaK_dischargevars=Lt,t.exports.luaK_exp2RK=Et,t.exports.luaK_exp2anyreg=kt,t.exports.luaK_exp2anyregup=function(t,e){(e.k!==R.expkind.VUPVAL||C(e))&&kt(t,e)},t.exports.luaK_exp2nextreg=bt,t.exports.luaK_exp2val=Ot,t.exports.luaK_fixline=wt,t.exports.luaK_getlabel=X,t.exports.luaK_goiffalse=Rt,t.exports.luaK_goiftrue=Nt,t.exports.luaK_indexed=function(t,e,r){var n=R.expkind;E(!C(e)&&(R.vkisinreg(e.k)||e.k===n.VUPVAL)),e.u.ind.t=e.u.info,e.u.ind.idx=Et(t,r),e.u.ind.vt=e.k===n.VUPVAL?n.VUPVAL:n.VLOCAL,e.k=n.VINDEXED},t.exports.luaK_infix=function(t,e,r){switch(e){case M.OPR_AND:Nt(t,r);break;case M.OPR_OR:Rt(t,r);break;case M.OPR_CONCAT:bt(t,r);break;case M.OPR_ADD:case M.OPR_SUB:case M.OPR_MUL:case M.OPR_DIV:case M.OPR_IDIV:case M.OPR_MOD:case M.OPR_POW:case M.OPR_BAND:case M.OPR_BOR:case M.OPR_BXOR:case M.OPR_SHL:case M.OPR_SHR:D(r,!1)||Et(t,r);break;default:Et(t,r)}},t.exports.luaK_intK=ft,t.exports.luaK_jump=j,t.exports.luaK_jumpto=function(t,e){return Q(t,j(t),e)},t.exports.luaK_nil=V,t.exports.luaK_numberK=_t,t.exports.luaK_patchclose=function(t,e,r){for(r++;-1!==e;e=G(t,e)){var n=t.f.code[e];E(n.opcode===w.OP_JMP&&(0===n.A||n.A>=r)),N.SETARG_A(n,r)}},t.exports.luaK_patchlist=Q,t.exports.luaK_patchtohere=W,t.exports.luaK_posfix=function(t,e,r,n,a){var s=R.expkind;switch(e){case M.OPR_AND:E(-1===r.t),Lt(t,n),n.f=F(t,n.f,r.f),r.to(n);break;case M.OPR_OR:E(-1===r.f),Lt(t,n),n.t=F(t,n.t,r.t),r.to(n);break;case M.OPR_CONCAT:Ot(t,n);var o=B(t,n);n.k===s.VRELOCABLE&&o.opcode===w.OP_CONCAT?(E(r.u.info===o.B-1),lt(t,r),N.SETARG_B(o,r.u.info),r.k=s.VRELOCABLE,r.u.info=n.u.info):(bt(t,n),St(t,w.OP_CONCAT,r,n,a));break;case M.OPR_ADD:case M.OPR_SUB:case M.OPR_MUL:case M.OPR_DIV:case M.OPR_IDIV:case M.OPR_MOD:case M.OPR_POW:case M.OPR_BAND:case M.OPR_BOR:case M.OPR_BXOR:case M.OPR_SHL:case M.OPR_SHR:yt(e+u,r,n)||St(t,e+w.OP_ADD,r,n,a);break;case M.OPR_EQ:case M.OPR_LT:case M.OPR_LE:case M.OPR_NE:case M.OPR_GT:case M.OPR_GE:!function(t,e,r,n){var a,u=R.expkind;r.k===u.VK?a=N.RKASK(r.u.info):(E(r.k===u.VNONRELOC),a=r.u.info);var s=Et(t,n);switch(it(t,r,n),e){case M.OPR_NE:r.u.info=H(t,w.OP_EQ,0,a,s);break;case M.OPR_GT:case M.OPR_GE:var o=e-M.OPR_NE+w.OP_EQ;r.u.info=H(t,o,1,s,a);break;default:var l=e-M.OPR_EQ+w.OP_EQ;r.u.info=H(t,l,1,a,s)}r.k=u.VJMP}(t,e,r,n)}return r},t.exports.luaK_prefix=function(t,e,r,n){var a=new R.expdesc;switch(a.k=R.expkind.VKINT,a.u.ival=a.u.nval=a.u.info=0,a.t=-1,a.f=-1,e){case P.OPR_MINUS:case P.OPR_BNOT:if(yt(e+h,r,a))break;case P.OPR_LEN:!function(t,e,r,n){var a=kt(t,r);lt(t,r),r.u.info=tt(t,e,0,a,0),r.k=R.expkind.VRELOCABLE,wt(t,n)}(t,e+w.OP_UNM,r,n);break;case P.OPR_NOT:!function(t,e){var r=R.expkind;switch(Lt(t,e),e.k){case r.VNIL:case r.VFALSE:e.k=r.VTRUE;break;case r.VK:case r.VKFLT:case r.VKINT:case r.VTRUE:e.k=r.VFALSE;break;case r.VJMP:mt(t,e);break;case r.VRELOCABLE:case r.VNONRELOC:gt(t,e),lt(t,e),e.u.info=tt(t,w.OP_NOT,0,e.u.info,0),e.k=r.VRELOCABLE}var n=e.f;e.f=e.t,e.t=n,Z(t,e.f),Z(t,e.t)}(t,r)}},t.exports.luaK_reserveregs=st,t.exports.luaK_ret=function(t,e,r){tt(t,w.OP_RETURN,e,r+1,0)},t.exports.luaK_self=function(t,e,r){kt(t,e);var n=e.u.info;lt(t,e),e.u.info=t.freereg,e.k=R.expkind.VNONRELOC,st(t,2),tt(t,w.OP_SELF,e.u.info,n,Et(t,r)),lt(t,r)},t.exports.luaK_setlist=function(t,e,r,n){var u=(r-1)/N.LFIELDS_PER_FLUSH+1,s=n===a?0:n;E(0!==n&&n<=N.LFIELDS_PER_FLUSH),u<=N.MAXARG_C?tt(t,w.OP_SETLIST,e,s,u):u<=N.MAXARG_Ax?(tt(t,w.OP_SETLIST,e,s,0),nt(t,u)):m.luaX_syntaxerror(t.ls,O("constructor too long",!0)),t.freereg=e+1},t.exports.luaK_setmultret=function(t,e){vt(t,e,a)},t.exports.luaK_setoneret=ht,t.exports.luaK_setreturns=vt,t.exports.luaK_storevar=function(t,e,r){var n=R.expkind;switch(e.k){case n.VLOCAL:return lt(t,r),void xt(t,r,e.u.info);case n.VUPVAL:var a=kt(t,r);tt(t,w.OP_SETUPVAL,a,e.u.info,0);break;case n.VINDEXED:var u=e.u.ind.vt===n.VLOCAL?w.OP_SETTABLE:w.OP_SETTABUP,s=Et(t,r);tt(t,u,e.u.ind.t,e.u.ind.idx,s)}lt(t,r)},t.exports.luaK_stringK=function(t,e){var r=new I(g,e);return ct(t,r,r)}},function(t,e,r){"use strict";function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var a=r(1),u=a.LUA_SIGNATURE,s=a.constant_types,o=s.LUA_TBOOLEAN,l=s.LUA_TLNGSTR,i=s.LUA_TNIL,c=s.LUA_TNUMFLT,f=s.LUA_TNUMINT,_=s.LUA_TSHRSTR,p=a.thread_status.LUA_ERRSYNTAX,v=a.is_luastring,h=a.luastring_eq,L=a.to_luastring,d=r(8),A=r(13),g=r(6),T=r(16),x=T.MAXARG_sBx,b=T.POS_A,k=T.POS_Ax,O=T.POS_B,E=T.POS_Bx,m=T.POS_C,U=T.POS_OP,N=T.SIZE_A,R=T.SIZE_Ax,y=T.SIZE_B,S=T.SIZE_Bx,w=T.SIZE_C,I=T.SIZE_OP,M=r(4).lua_assert,P=r(10).luaS_bless,C=r(20),D=C.luaZ_read,V=C.ZIO,B=[25,147,13,10,26,10],G=function(){function t(e,r,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.intSize=4,this.size_tSize=4,this.instructionSize=4,this.integerSize=4,this.numberSize=8,M(r instanceof V,"BytecodeParser only operates on a ZIO"),M(v(n)),64===n[0]||61===n[0]?this.name=n.subarray(1):n[0]==u[0]?this.name=L("binary string",!0):this.name=n,this.L=e,this.Z=r,this.arraybuffer=new ArrayBuffer(Math.max(this.intSize,this.size_tSize,this.instructionSize,this.integerSize,this.numberSize)),this.dv=new DataView(this.arraybuffer),this.u8=new Uint8Array(this.arraybuffer)}return function(t,e,r){e&&n(t.prototype,e),r&&n(t,r)}(t,[{key:"read",value:function(t){var e=new Uint8Array(t);return 0!==D(this.Z,e,0,t)&&this.error("truncated"),e}},{key:"LoadByte",value:function(){return 0!==D(this.Z,this.u8,0,1)&&this.error("truncated"),this.u8[0]}},{key:"LoadInt",value:function(){return 0!==D(this.Z,this.u8,0,this.intSize)&&this.error("truncated"),this.dv.getInt32(0,!0)}},{key:"LoadNumber",value:function(){return 0!==D(this.Z,this.u8,0,this.numberSize)&&this.error("truncated"),this.dv.getFloat64(0,!0)}},{key:"LoadInteger",value:function(){return 0!==D(this.Z,this.u8,0,this.integerSize)&&this.error("truncated"),this.dv.getInt32(0,!0)}},{key:"LoadSize_t",value:function(){return this.LoadInteger()}},{key:"LoadString",value:function(){var t=this.LoadByte();return 255===t&&(t=this.LoadSize_t()),0===t?null:P(this.L,this.read(t-1))}},{key:"LoadCode",value:function(e){for(var r=this.LoadInt(),n=t,a=0;a<r;a++){0!==D(this.Z,this.u8,0,this.instructionSize)&&this.error("truncated");var u=this.dv.getUint32(0,!0);e.code[a]={code:u,opcode:u>>U&n.MASK1(I,0),A:u>>b&n.MASK1(N,0),B:u>>O&n.MASK1(y,0),C:u>>m&n.MASK1(w,0),Bx:u>>E&n.MASK1(S,0),Ax:u>>k&n.MASK1(R,0),sBx:(u>>E&n.MASK1(S,0))-x}}}},{key:"LoadConstants",value:function(t){for(var e=this.LoadInt(),r=0;r<e;r++){var n=this.LoadByte();switch(n){case i:t.k.push(new g.TValue(i,null));break;case o:t.k.push(new g.TValue(o,0!==this.LoadByte()));break;case c:t.k.push(new g.TValue(c,this.LoadNumber()));break;case f:t.k.push(new g.TValue(f,this.LoadInteger()));break;case _:case l:t.k.push(new g.TValue(l,this.LoadString()));break;default:this.error("unrecognized constant '".concat(n,"'"))}}}},{key:"LoadProtos",value:function(t){for(var e=this.LoadInt(),r=0;r<e;r++)t.p[r]=new A.Proto(this.L),this.LoadFunction(t.p[r],t.source)}},{key:"LoadUpvalues",value:function(t){for(var e=this.LoadInt(),r=0;r<e;r++)t.upvalues[r]={name:null,instack:this.LoadByte(),idx:this.LoadByte()}}},{key:"LoadDebug",value:function(t){for(var e=this.LoadInt(),r=0;r<e;r++)t.lineinfo[r]=this.LoadInt();e=this.LoadInt();for(var n=0;n<e;n++)t.locvars[n]={varname:this.LoadString(),startpc:this.LoadInt(),endpc:this.LoadInt()};e=this.LoadInt();for(var a=0;a<e;a++)t.upvalues[a].name=this.LoadString()}},{key:"LoadFunction",value:function(t,e){t.source=this.LoadString(),null===t.source&&(t.source=e),t.linedefined=this.LoadInt(),t.lastlinedefined=this.LoadInt(),t.numparams=this.LoadByte(),t.is_vararg=0!==this.LoadByte(),t.maxstacksize=this.LoadByte(),this.LoadCode(t),this.LoadConstants(t),this.LoadUpvalues(t),this.LoadProtos(t),this.LoadDebug(t)}},{key:"checkliteral",value:function(t,e){var r=this.read(t.length);h(r,t)||this.error(e)}},{key:"checkHeader",value:function(){this.checkliteral(u.subarray(1),"not a"),83!==this.LoadByte()&&this.error("version mismatch in"),0!==this.LoadByte()&&this.error("format mismatch in"),this.checkliteral(B,"corrupted"),this.intSize=this.LoadByte(),this.size_tSize=this.LoadByte(),this.instructionSize=this.LoadByte(),this.integerSize=this.LoadByte(),this.numberSize=this.LoadByte(),this.checksize(this.intSize,4,"int"),this.checksize(this.size_tSize,4,"size_t"),this.checksize(this.instructionSize,4,"instruction"),this.checksize(this.integerSize,4,"integer"),this.checksize(this.numberSize,8,"number"),22136!==this.LoadInteger()&&this.error("endianness mismatch in"),370.5!==this.LoadNumber()&&this.error("float format mismatch in")}},{key:"error",value:function(t){g.luaO_pushfstring(this.L,L("%s: %s precompiled chunk"),this.name,L(t)),d.luaD_throw(this.L,p)}},{key:"checksize",value:function(t,e,r){t!==e&&this.error("".concat(r," size mismatch in"))}}],[{key:"MASK1",value:function(t,e){return~(-1<<t)<<e}}]),t}();t.exports.luaU_undump=function(t,e,r){var n=new G(t,e,r);n.checkHeader();var a=A.luaF_newLclosure(t,n.LoadByte());return d.luaD_inctop(t),t.stack[t.top-1].setclLvalue(a),a.p=new A.Proto(t),n.LoadFunction(a.p,null),M(a.nupvalues===a.p.upvalues.length),a}},function(t,e,r){"use strict";var n=r(1),a=n.LUA_SIGNATURE,u=n.LUA_VERSION_MAJOR,s=n.LUA_VERSION_MINOR,o=n.constant_types,l=o.LUA_TBOOLEAN,i=o.LUA_TLNGSTR,c=o.LUA_TNIL,f=o.LUA_TNUMFLT,_=o.LUA_TNUMINT,p=o.LUA_TSHRSTR,v=n.luastring_of,h=v(25,147,13,10,26,10),L=16*Number(u)+Number(s),d=function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.L=null,this.write=null,this.data=null,this.strip=NaN,this.status=NaN},A=function(t,e,r){0===r.status&&e>0&&(r.status=r.writer(r.L,t,e,r.data))},g=function(t,e){A(v(t),1,e)},T=function(t,e){var r=new ArrayBuffer(4);new DataView(r).setInt32(0,t,!0);var n=new Uint8Array(r);A(n,4,e)},x=function(t,e){var r=new ArrayBuffer(4);new DataView(r).setInt32(0,t,!0);var n=new Uint8Array(r);A(n,4,e)},b=function(t,e){var r=new ArrayBuffer(8);new DataView(r).setFloat64(0,t,!0);var n=new Uint8Array(r);A(n,8,e)},k=function(t,e){if(null===t)g(0,e);else{var r=t.tsslen()+1,n=t.getstr();r<255?g(r,e):(g(255,e),x(r,e)),A(n,r-1,e)}},O=function(t,e){var r=t.p.length;T(r,e);for(var n=0;n<r;n++)E(t.p[n],t.source,e)},E=function(t,e,r){r.strip||t.source===e?k(null,r):k(t.source,r),T(t.linedefined,r),T(t.lastlinedefined,r),g(t.numparams,r),g(t.is_vararg?1:0,r),g(t.maxstacksize,r),function(t,e){var r=t.code.map(function(t){return t.code});T(r.length,e);for(var n=0;n<r.length;n++)T(r[n],e)}(t,r),function(t,e){var r=t.k.length;T(r,e);for(var n=0;n<r;n++){var a=t.k[n];switch(g(a.ttype(),e),a.ttype()){case c:break;case l:g(a.value?1:0,e);break;case f:b(a.value,e);break;case _:x(a.value,e);break;case p:case i:k(a.tsvalue(),e)}}}(t,r),function(t,e){var r=t.upvalues.length;T(r,e);for(var n=0;n<r;n++)g(t.upvalues[n].instack?1:0,e),g(t.upvalues[n].idx,e)}(t,r),O(t,r),function(t,e){var r=e.strip?0:t.lineinfo.length;T(r,e);for(var n=0;n<r;n++)T(t.lineinfo[n],e);r=e.strip?0:t.locvars.length,T(r,e);for(var a=0;a<r;a++)k(t.locvars[a].varname,e),T(t.locvars[a].startpc,e),T(t.locvars[a].endpc,e);r=e.strip?0:t.upvalues.length,T(r,e);for(var u=0;u<r;u++)k(t.upvalues[u].name,e)}(t,r)};t.exports.luaU_dump=function(t,e,r,n,u){var s=new d;return s.L=t,s.writer=r,s.data=n,s.strip=u,s.status=0,function(t){A(a,a.length,t),g(L,t),g(0,t),A(h,h.length,t),g(4,t),g(4,t),g(4,t),g(4,t),g(8,t),x(22136,t),b(370.5,t)}(s),g(e.upvalues.length,s),E(e,null,s),s.status}},function(t,e,r){var n;!function(){"use strict";var a={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[\+\-]/};function u(t){return function(t,e){var r,n,s,o,l,i,c,f,_,p=1,v=t.length,h="";for(n=0;n<v;n++)if("string"==typeof t[n])h+=t[n];else if(Array.isArray(t[n])){if((o=t[n])[2])for(r=e[p],s=0;s<o[2].length;s++){if(!r.hasOwnProperty(o[2][s]))throw new Error(u('[sprintf] property "%s" does not exist',o[2][s]));r=r[o[2][s]]}else r=o[1]?e[o[1]]:e[p++];if(a.not_type.test(o[8])&&a.not_primitive.test(o[8])&&r instanceof Function&&(r=r()),a.numeric_arg.test(o[8])&&"number"!=typeof r&&isNaN(r))throw new TypeError(u("[sprintf] expecting number but found %T",r));switch(a.number.test(o[8])&&(f=r>=0),o[8]){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,o[6]?parseInt(o[6]):0);break;case"e":r=o[7]?parseFloat(r).toExponential(o[7]):parseFloat(r).toExponential();break;case"f":r=o[7]?parseFloat(r).toFixed(o[7]):parseFloat(r);break;case"g":r=o[7]?String(Number(r.toPrecision(o[7]))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=o[7]?r.substring(0,o[7]):r;break;case"t":r=String(!!r),r=o[7]?r.substring(0,o[7]):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=o[7]?r.substring(0,o[7]):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=o[7]?r.substring(0,o[7]):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}a.json.test(o[8])?h+=r:(!a.number.test(o[8])||f&&!o[3]?_="":(_=f?"+":"-",r=r.toString().replace(a.sign,"")),i=o[4]?"0"===o[4]?"0":o[4].charAt(1):" ",c=o[6]-(_+r).length,l=o[6]&&c>0?i.repeat(c):"",h+=o[5]?_+r+l:"0"===i?_+l+r:l+_+r)}return h}(function(t){if(o[t])return o[t];var e,r=t,n=[],u=0;for(;r;){if(null!==(e=a.text.exec(r)))n.push(e[0]);else if(null!==(e=a.modulo.exec(r)))n.push("%");else{if(null===(e=a.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){u|=1;var s=[],l=e[2],i=[];if(null===(i=a.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(i[1]);""!==(l=l.substring(i[0].length));)if(null!==(i=a.key_access.exec(l)))s.push(i[1]);else{if(null===(i=a.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(i[1])}e[2]=s}else u|=2;if(3===u)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push(e)}r=r.substring(e[0].length)}return o[t]=n}(t),arguments)}function s(t,e){return u.apply(null,[t].concat(e||[]))}var o=Object.create(null);e.sprintf=u,e.vsprintf=s,"undefined"!=typeof window&&(window.sprintf=u,window.vsprintf=s,void 0===(n=function(){return{sprintf:u,vsprintf:s}}.call(e,r,e,t))||(t.exports=n))}()},function(t,e,r){"use strict";var n=r(2).lua_pop,a=r(7).luaL_requiref,u=r(5).to_luastring,s={};t.exports.luaL_openlibs=function(t){for(var e in s)a(t,u(e),s[e],1),n(t,1)};var o=r(17),l=r(24).luaopen_base,i=r(25).luaopen_coroutine,c=r(31).luaopen_debug,f=r(30).luaopen_math,_=r(32).luaopen_package,p=r(27).luaopen_os,v=r(28).luaopen_string,h=r(26).luaopen_table,L=r(29).luaopen_utf8;s._G=l,s[o.LUA_LOADLIBNAME]=_,s[o.LUA_COLIBNAME]=i,s[o.LUA_TABLIBNAME]=h,s[o.LUA_OSLIBNAME]=p,s[o.LUA_STRLIBNAME]=v,s[o.LUA_MATHLIBNAME]=f,s[o.LUA_UTF8LIBNAME]=L,s[o.LUA_DBLIBNAME]=c;var d=r(33).luaopen_fengari;s[o.LUA_FENGARILIBNAME]=d}])});
+0
-1
root/static/fengari-web/map: application$json less more
0 {"version":3,"sources":["webpack://fengari/webpack/universalModuleDefinition","webpack://fengari/webpack/bootstrap","webpack://fengari/./node_modules/fengari/src/fengari.js","webpack://fengari/./node_modules/fengari/src/defs.js","webpack://fengari/./node_modules/fengari/src/lua.js","webpack://fengari/./node_modules/fengari/src/luaconf.js","webpack://fengari/./node_modules/fengari/src/llimits.js","webpack://fengari/./node_modules/fengari/src/fengaricore.js","webpack://fengari/./node_modules/fengari/src/lobject.js","webpack://fengari/./node_modules/fengari/src/lauxlib.js","webpack://fengari/./node_modules/fengari/src/ldo.js","webpack://fengari/./node_modules/fengari/src/ltable.js","webpack://fengari/./node_modules/fengari/src/lstring.js","webpack://fengari/./node_modules/fengari/src/ldebug.js","webpack://fengari/./node_modules/fengari/src/lstate.js","webpack://fengari/./node_modules/fengari/src/lfunc.js","webpack://fengari/./node_modules/fengari/src/ltm.js","webpack://fengari/./node_modules/fengari/src/lvm.js","webpack://fengari/./node_modules/fengari/src/lopcodes.js","webpack://fengari/./node_modules/fengari/src/lualib.js","webpack://fengari/./node_modules/fengari-interop/src/js.js","webpack://fengari/./node_modules/fengari/src/lapi.js","webpack://fengari/./node_modules/fengari/src/lzio.js","webpack://fengari/./node_modules/fengari/src/llex.js","webpack://fengari/./node_modules/fengari/src/ljstype.js","webpack://fengari/./node_modules/fengari/src/lparser.js","webpack://fengari/./node_modules/fengari/src/lbaselib.js","webpack://fengari/./node_modules/fengari/src/lcorolib.js","webpack://fengari/./node_modules/fengari/src/ltablib.js","webpack://fengari/./node_modules/fengari/src/loslib.js","webpack://fengari/./node_modules/fengari/src/lstrlib.js","webpack://fengari/./node_modules/fengari/src/lutf8lib.js","webpack://fengari/./node_modules/fengari/src/lmathlib.js","webpack://fengari/./node_modules/fengari/src/ldblib.js","webpack://fengari/./node_modules/fengari/src/loadlib.js","webpack://fengari/./node_modules/fengari/src/fengarilib.js","webpack://fengari/./src/fengari-web.js","webpack://fengari/./node_modules/fengari/src/lcode.js","webpack://fengari/./node_modules/fengari/src/lundump.js","webpack://fengari/./node_modules/fengari/src/ldump.js","webpack://fengari/./node_modules/sprintf-js/src/sprintf.js","webpack://fengari/./node_modules/fengari/src/linit.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","core","require","FENGARI_AUTHORS","FENGARI_COPYRIGHT","FENGARI_RELEASE","FENGARI_VERSION","FENGARI_VERSION_MAJOR","FENGARI_VERSION_MINOR","FENGARI_VERSION_NUM","FENGARI_VERSION_RELEASE","luastring_eq","luastring_indexOf","luastring_of","to_jsstring","to_luastring","to_uristring","luaconf","lua","lauxlib","lualib","luastring_from","Uint8Array","from","a","len","length","indexOf","v","array_indexOf","Error","of","arguments","is_luastring","unicode_error_message","uri_allowed","split","reduce","charCodeAt","to_luastring_cache","str","cache","TypeError","cached","outU8Array","Array","outIdx","u","b","to","replacement_char","Math","min","u0","String","fromCharCode","RangeError","u1","u2","s1","s2","u3","toString","from_userstring","LUA_SIGNATURE","LUA_VERSION_MAJOR","LUA_VERSION_MINOR","LUA_VERSION_NUM","LUA_VERSION_RELEASE","LUA_VERSION","LUA_RELEASE","LUA_COPYRIGHT","LUA_AUTHORS","constant_types","LUA_TNONE","LUA_TNIL","LUA_TBOOLEAN","LUA_TLIGHTUSERDATA","LUA_TNUMBER","LUA_TSTRING","LUA_TTABLE","LUA_TFUNCTION","LUA_TUSERDATA","LUA_TTHREAD","LUA_NUMTAGS","LUA_TSHRSTR","LUA_TLNGSTR","LUA_TNUMFLT","LUA_TNUMINT","LUA_TLCL","LUA_TLCF","LUA_TCCL","LUA_REGISTRYINDEX","LUAI_MAXSTACK","LUA_HOOKCALL","LUA_HOOKCOUNT","LUA_HOOKLINE","LUA_HOOKRET","LUA_HOOKTAILCALL","LUA_MASKCALL","LUA_MASKCOUNT","LUA_MASKLINE","LUA_MASKRET","LUA_MINSTACK","LUA_MULTRET","LUA_OPADD","LUA_OPBAND","LUA_OPBNOT","LUA_OPBOR","LUA_OPBXOR","LUA_OPDIV","LUA_OPEQ","LUA_OPIDIV","LUA_OPLE","LUA_OPLT","LUA_OPMOD","LUA_OPMUL","LUA_OPPOW","LUA_OPSHL","LUA_OPSHR","LUA_OPSUB","LUA_OPUNM","LUA_RIDX_GLOBALS","LUA_RIDX_LAST","LUA_RIDX_MAINTHREAD","lua_Debug","_classCallCheck","this","event","NaN","namewhat","what","source","currentline","linedefined","lastlinedefined","nups","nparams","isvararg","istailcall","short_src","i_ci","lua_upvalueindex","thread_status","LUA_OK","LUA_YIELD","LUA_ERRRUN","LUA_ERRSYNTAX","LUA_ERRMEM","LUA_ERRGCMM","LUA_ERRERR","defs","lapi","ldebug","ldo","lstate","lua_absindex","lua_arith","lua_atpanic","lua_atnativeerror","lua_call","lua_callk","lua_checkstack","lua_close","lua_compare","lua_concat","lua_copy","lua_createtable","lua_dump","lua_error","lua_gc","lua_getallocf","lua_getextraspace","lua_getfield","lua_getglobal","lua_gethook","lua_gethookcount","lua_gethookmask","lua_geti","lua_getinfo","lua_getlocal","lua_getmetatable","lua_getstack","lua_gettable","lua_gettop","lua_getupvalue","lua_getuservalue","lua_insert","lua_isboolean","lua_iscfunction","lua_isfunction","lua_isinteger","lua_islightuserdata","lua_isnil","lua_isnone","lua_isnoneornil","lua_isnumber","lua_isproxy","lua_isstring","lua_istable","lua_isthread","lua_isuserdata","lua_isyieldable","lua_len","lua_load","lua_newstate","lua_newtable","lua_newthread","lua_newuserdata","lua_next","lua_pcall","lua_pcallk","lua_pop","lua_pushboolean","lua_pushcclosure","lua_pushcfunction","lua_pushfstring","lua_pushglobaltable","lua_pushinteger","lua_pushjsclosure","lua_pushjsfunction","lua_pushlightuserdata","lua_pushliteral","lua_pushlstring","lua_pushnil","lua_pushnumber","lua_pushstring","lua_pushthread","lua_pushvalue","lua_pushvfstring","lua_rawequal","lua_rawget","lua_rawgeti","lua_rawgetp","lua_rawlen","lua_rawset","lua_rawseti","lua_rawsetp","lua_register","lua_remove","lua_replace","lua_resume","lua_rotate","lua_setallof","lua_setfield","lua_setglobal","lua_sethook","lua_seti","lua_setlocal","lua_setmetatable","lua_settable","lua_settop","lua_setupvalue","lua_setuservalue","lua_status","lua_stringtonumber","lua_toboolean","lua_todataview","lua_tointeger","lua_tointegerx","lua_tojsstring","lua_tolstring","lua_tonumber","lua_tonumberx","lua_topointer","lua_toproxy","lua_tostring","lua_tothread","lua_touserdata","lua_type","lua_typename","lua_upvalueid","lua_upvaluejoin","lua_version","lua_xmove","lua_yield","lua_yieldk","lua_tocfunction","conf","LUA_PATH_SEP","LUA_PATH_MARK","LUA_EXEC_DIR","LUA_VDIR","LUA_DIRSEP","LUA_LDIR","LUA_JSDIR","LUA_PATH_DEFAULT","LUA_JSPATH_DEFAULT","LUA_COMPAT_FLOATSTRING","LUA_IDSIZE","LUA_INTEGER_FMT","concat","LUAL_BUFFERSIZE","ldexp","mantissa","exponent","steps","ceil","abs","result","pow","floor","LUA_INTEGER_FRMLEN","LUA_MAXINTEGER","LUA_MININTEGER","LUA_NUMBER_FMT","LUA_NUMBER_FRMLEN","frexp","data","DataView","ArrayBuffer","setFloat64","bits","getUint32","lua_getlocaledecpoint","lua_integer2str","lua_number2str","Number","toPrecision","lua_numbertointeger","luai_apicheck","e","lua_assert","api_check","msg","LUAI_MAXCCALLS","LUA_MINBUFFER","luai_nummod","L","MAX_INT","MIN_INT","lisdigit","lisprint","lisspace","lisxdigit","luaS_bless","luaS_new","ltable","lvm","ltm","LUA_TPROTO","LUA_TDEADKEY","TValue","type","ttnov","checktype","checktag","ttisnil","ttisboolean","x","tv","ttisstring","tsvalue","getstr","tsslen","svalue","setsvalue2s","newidx","ts","stack","setsvalue","luaO_nilobject","freeze","LClosure","id","l_G","id_counter","nupvalues","upvals","CClosure","f","upvalue","Udata","size","metatable","uservalue","RETS","PRE","POS","luaO_hexavalue","luaO_utf8esc","buff","UTF8BUFFSZ","mfb","l_str2dloc","neg","sigdig","nosigdig","hasdot","neg1","exp1","lua_strx2number","exec","flt","parseFloat","isNaN","lua_str2number","SIGILS","modes","_defineProperty","_modes","MAXBY10","MAXLASTD","luaO_tostring","obj","ttisinteger","test","pushstr","luaD_inctop","top","luaO_pushvfstring","fmt","argp","subarray","luaO_pushfstring","setivalue","setfltvalue","lua_State","Table","_typeof","JSON","stringify","ids","set","luaG_runerror","luaD_checkstack","luaV_concat","_len","_key","intarith","op","v1","v2","luaV_imul","luaV_mod","luaV_div","luaV_shiftl","numarith","LocVar","varname","startpc","endpc","luaO_arith","p1","p2","p3","res","i1","i2","tointeger","n1","n2","tonumber","luaT_trybinTM","TMS","TM_ADD","luaO_chunkid","bufflen","out","nli","out_i","luaO_int2fb","luaO_str2num","s2i","empty","l_str2int","pmode","l_str2d","pushobj2s","pushsvalue2s","setobjs2s","oldidx","setfrom","setobj2s","oldtv","getc","luaL_loadfilex","LUA_ERRFILE","LUA_LOADED_TABLE","LUA_PRELOAD_TABLE","LUA_FILEHANDLE","__name","__tostring","luaL_Buffer","pushglobalfuncname","ar","findfield","objidx","level","pushfuncname","panic","luaL_argerror","arg","extramsg","luaL_error","typeerror","tname","typearg","luaL_getmetafield","luaL_typename","luaL_where","luaL_fileresult","stat","fname","message","errno","luaL_getmetatable","luaL_testudata","ud","tag_error","tag","luaL_checklstring","undefined","luaL_checkstring","luaL_optlstring","def","luaL_optstring","luaL_checknumber","luaL_checkinteger","interror","luaL_prepbuffsize","B","sz","newend","newsize","max","newbuff","luaL_buffinit","luaL_addlstring","luaL_addsize","luaL_addstring","luaL_pushresult","luaL_opt","getS","string","luaL_loadbufferx","luaL_loadbuffer","luaL_loadstring","tt","luaL_callmeta","p_I","p_f","find_subarray","arr","subarr","from_index","sl","loop","j","luaL_getsubtable","idx","luaL_setfuncs","nup","lib","luaL_checkstack","space","errfile","fnameindex","error","serr","filename","utf8_bom","skipcomment","lf","skipBOM","skipped","getF","bytes","pos","LoadF","err","path","xhr","XMLHttpRequest","open","responseType","send","status","statusText","response","com","readstatus","luaL_loadfile","luaL_checkversion_","ver","LUA_NOREF","LUA_REFNIL","luaL_addchar","luaL_addvalue","luaL_argcheck","cond","luaL_buffinitsize","luaL_checkany","luaL_checkoption","lst","luaL_checktype","luaL_checkudata","luaL_checkversion","luaL_dofile","luaL_dostring","luaL_execresult","signal","luaL_gsub","wild","luaL_len","luaL_newlib","luaL_newlibtable","luaL_newmetatable","luaL_newstate","luaL_optinteger","luaL_optnumber","luaL_prepbuffer","luaL_pushresultsize","luaL_ref","ref","luaL_requiref","modname","openf","glb","luaL_setmetatable","luaL_tolstring","kind","luaL_traceback","L1","last","li","le","lastlevel","LEVELS1","luaL_unref","lua_writestringerror","console","lfunc","lobject","lopcodes","lparser","luaS_newliteral","lundump","MBuffer","adjust_top","newtop","seterrorobj","errcode","oldtop","current_top","ERRORSTACKSIZE","luaD_reallocstack","stack_last","EXTRA_STACK","luaD_growstack","luaD_throw","needed","luaD_shrinkstack","inuse","lim","ci","previous","stackinuse","goodsize","luaE_freeCI","luaD_precall","off","nresults","func","luaE_extendCI","funcOff","callstatus","hookmask","luaD_hook","api_checknelems","luaD_poscall","base","fsize","maxstacksize","is_vararg","adjust_varargs","numparams","l_base","l_code","code","l_savedpc","CIST_LUA","callhook","tryfuncTM","firstResult","nres","wanted","oldpc","next","moveresults","setnilvalue","line","hook","allowhook","ci_top","CIST_HOOKED","opcode","OpCodesI","OP_TAILCALL","CIST_TAIL","actual","nfixargs","fixed","tm","luaT_gettmbyobj","TM_CALL","ttisfunction","luaG_typeerror","luaD_call","nResults","nCcalls","stackerror","luaV_execute","errorJmp","g","mainthread","luaD_rawrunprotected","oldnCcalls","lj","atnativeerror","luaD_callnoyield","errfunc","e2","finishCcall","c_k","nny","CIST_YPCALL","c_old_errfunc","c_ctx","unroll","base_ci","luaV_finishOp","recover","findpcall","extra","luaF_close","CIST_OAH","resume_error","narg","resume","firstArg","ctx","k","luaD_pcall","old_top","ef","old_ci","old_allowhooks","old_nny","old_errfunc","SParser","z","dyd","Dyndata","checkmode","f_parser","cl","zgetc","luaU_undump","luaY_parser","upvalues","luaF_initupvals","luaD_protectedparser","nargs","oldnny","luaS_hashlongstr","TString","lightuserdata_hashes","WeakMap","get_lightuserdata_hash","hash","table_hash","strong","Map","dead_strong","dead_weak","flags","add","clear","prev","entry","mark_dead","setdeadvalue","delete","is_valid_weakmap_key","getgeneric","luaH_getint","invalidateTMcache","luaH_get","ttisfloat","luaH_getn","luaH_getstr","luaH_setfrom","kv","luaH_setint","luaH_new","luaH_next","table","keyI","keyO","ttisdeadkey","realstring","luaS_hash","luaS_eqlngstr","llex","currentpc","lineinfo","swapextra","temp","upvalname","uv","findlocal","findvararg","luaF_getlocalname","funcinfo","getfuncname","funcname","CIST_FIN","funcnamefromcode","kname","pc","ISK","kvalue","INDEXK","getobjname","filterpc","jmptarget","lastpc","reg","setreg","OCi","A","OP_LOADNIL","OP_TFORCALL","OP_CALL","OP_JMP","dest","sBx","testAMode","findsetreg","OP_MOVE","OP_GETTABUP","OP_GETTABLE","C","vn","LUA_ENV","OP_GETUPVAL","OP_LOADK","OP_LOADKX","Bx","Ax","OP_SELF","TM_INDEX","OP_SETTABUP","OP_SETTABLE","TM_NEWINDEX","OP_ADD","OP_SUB","TM_SUB","OP_MUL","TM_MUL","OP_MOD","TM_MOD","OP_POW","TM_POW","OP_DIV","TM_DIV","OP_IDIV","TM_IDIV","OP_BAND","TM_BAND","OP_BOR","TM_BOR","OP_BXOR","TM_BXOR","OP_SHL","TM_SHL","OP_SHR","TM_SHR","OP_UNM","TM_UNM","OP_BNOT","TM_BNOT","OP_LEN","TM_LEN","OP_CONCAT","TM_CONCAT","OP_EQ","TM_EQ","OP_LT","TM_LT","OP_LE","TM_LE","tmname","varinfo","getupvalname","stkid","isinstack","luaT_objtypename","luaG_addinfo","src","luaG_errormsg","luaG_concaterror","cvt2str","luaG_opinterror","luaG_ordererror","t1","t2","luaG_tointerror","luaG_traceexec","mask","counthook","hookcount","basehookcount","CIST_HOOKYIELD","npc","newline","auxgetinfo","ttisclosure","api_incr_top","collectvalidlines","ttisLclosure","local","count","BASIC_STACK_SIZE","CallInfo","stack_init","freestack","f_luaopen","registry","l_registry","sethvalue","init_registry","luaT_init","version","CIST_FRESH","CIST_LEQ","close_state","global_State","TM_N","mt","luaE_freethread","MAXUPVAL","Proto","locvars","luaF_findupval","old","local_number","luaF_newLclosure","luaT_typenames_","map","ttypename","TM_GC","TM_MODE","luaT_callTM","hasres","luaT_callbinTM","luaT_gettm","events","ename","fasttm","et","luaT_callorderTM","l_isfalse","ttistable","ttisfulluserdata","LFIELDS_PER_FLUSH","OP_CLOSURE","OP_EXTRAARG","OP_FORLOOP","OP_FORPREP","OP_LOADBOOL","OP_NEWTABLE","OP_NOT","OP_RETURN","OP_SETLIST","OP_SETUPVAL","OP_TEST","OP_TESTSET","OP_TFORLOOP","OP_VARARG","RA","RB","RKB","RKC","dojump","donextjump","luaV_lessthan","ttisnumber","LTnum","l_strcmp","luaV_lessequal","LEnum","luaV_equalobj","ttype","forlimit","step","stopnow","ilimit","luaV_tointeger","cvt2num","vslen","ls","rs","luaV_objlen","ra","rb","h","imul","aLo","bLo","y","getcached","encup","instack","pushclosure","ncl","setclLvalue","tostring","isemptystr","copy2buff","tl","total","luaV_gettable","slot","settable","val","newframe","konst","setbvalue","upval","rc","op1","op2","numberop1","numberop2","numberop","rbIdx","nci","oci","nfunc","nfuncOff","ofuncOff","aux","limit","chgivalue","chgfltvalue","init","plimit","pstep","forlim","initv","nlimit","nstep","ninit","cb","inst","luaV_rawequalobj","luaP_opmodes","MASK1","MASK0","setarg","fullins","SETARG_Bx","POS_A","SIZE_C","ins","POS_OP","POS_C","MAXARG_Bx","BITRK","CREATE_ABC","CREATE_ABx","bc","CREATE_Ax","GET_OPCODE","GETARG_A","GETARG_B","GETARG_C","GETARG_Bx","GETARG_Ax","GETARG_sBx","MAXARG_A","MAXARG_Ax","MAXARG_B","MAXARG_C","MAXARG_sBx","MAXINDEXRK","NO_REG","OpArgK","OpArgN","OpArgR","OpArgU","OpCodes","POS_Ax","POS_B","POS_Bx","RKASK","SETARG_A","SETARG_Ax","SETARG_B","SETARG_C","SETARG_sBx","SET_OPCODE","SIZE_A","SIZE_Ax","SIZE_B","SIZE_Bx","SIZE_OP","getBMode","getCMode","getOpMode","iABC","iABx","iAsBx","iAx","testTMode","LUA_VERSUFFIX","luaopen_base","LUA_COLIBNAME","luaopen_coroutine","LUA_TABLIBNAME","luaopen_table","LUA_OSLIBNAME","luaopen_os","LUA_STRLIBNAME","luaopen_string","LUA_UTF8LIBNAME","luaopen_utf8","LUA_BITLIBNAME","LUA_MATHLIBNAME","luaopen_math","LUA_DBLIBNAME","luaopen_debug","LUA_LOADLIBNAME","luaopen_package","LUA_FENGARILIBNAME","luaopen_fengari","linit","luaL_openlibs","apply","construct","Reflect_deleteProperty","global_env","WorkerGlobalScope","self","eval","Reflect","deleteProperty","fApply","Function","target","thisArgument","argumentsList","args","push","isobject","js_tname","testjs","checkjs","pushjs","getmainthread","mainL","states","objects_seen","tojs","wrap","jscall","invoke","thisarg","n_results","gettable","prop","has","iter_next","iter","state","done","js_proxy","iterator","jsiterator","toPrimitive","hint","jslib","new","instanceof","typeof","getiter","get_iterator","Proxy","L_symbol","p_symbol","proxy_handlers","arg_length","desc","getOwnPropertyDescriptor","getPrototypeOf","ownKeys","setPrototypeOf","make_arrow_function","createproxy","raw_function","raw_arrow_function","valid_types","valid_types_as_luastring","fengariProxy","jsmt","__index","__newindex","__call","__pairs","first","for","index","keys","isArray","__len","FENGARI_INTEROP_VERSION","FENGARI_INTEROP_VERSION_MAJOR","FENGARI_INTEROP_VERSION_NUM","FENGARI_INTEROP_RELEASE","luaopen_js","luaU_dump","ZIO","fengari_argcheck","fengari_argcheckinteger","isvalid","index2addr","ttislcf","index2addr_","reverse","fromtv","pIdx","fromidx","toidx","fn","setclCvalue","auxsetstr","auxgetstr","narray","nrec","aux_upvalue","fi","seen","f_call","default_chunkname","checkresults","na","nr","getupvalref","fidx","panicf","errorf","index1","index2","o1","o2","writer","strip","warn","objindex","funcindex","up","ttisCclosure","G","ttislightuserdata","reader","chunkname","gt","luaS_newudata","lua_setallocf","u8","buffer","byteOffset","byteLength","jsstring","proxy","create_proxy","ttisthread","fidx1","fidx2","ref1","ref2","up2","luaZ_fill","EOZ","luaZ_buffer","luaZ_buffremove","luaZ_read","b_offset","luaZ_resetbuffer","luaZ_resizebuffer","lislalnum","lislalpha","RESERVED","TK_AND","TK_BREAK","FIRST_RESERVED","TK_DO","TK_ELSE","TK_ELSEIF","TK_END","TK_FALSE","TK_FOR","TK_FUNCTION","TK_GOTO","TK_IF","TK_IN","TK_LOCAL","TK_NIL","TK_NOT","TK_OR","TK_REPEAT","TK_RETURN","TK_THEN","TK_TRUE","TK_UNTIL","TK_WHILE","TK_IDIV","TK_CONCAT","TK_DOTS","TK_EQ","TK_GE","TK_LE","TK_NE","TK_SHL","TK_SHR","TK_DBCOLON","TK_EOS","TK_FLT","TK_INT","TK_NAME","TK_STRING","luaX_tokens","SemInfo","Token","token","seminfo","save","lexerror","luaX_token2str","currIsNewline","current","save_and_next","TVtrue","luaX_newstring","tpair","inclinenumber","linenumber","check_next1","check_next2","read_numeral","expo","txtToken","skip_sep","read_long_string","sep","skip","esccheck","gethexa","readhexaesc","utf8esc","readutf8desc","readdecesc","read_string","del","will","token_to_index","forEach","kidx","LexState","lastline","lookahead","fs","envn","isreserved","w","luaX_lookahead","luaX_next","luaX_setinput","firstchar","luaX_syntaxerror","luai_ctype_","BinOpr","OPR_ADD","OPR_AND","OPR_BAND","OPR_BOR","OPR_BXOR","OPR_CONCAT","OPR_DIV","OPR_EQ","OPR_GE","OPR_GT","OPR_IDIV","OPR_LE","OPR_LT","OPR_MOD","OPR_MUL","OPR_NE","OPR_NOBINOPR","OPR_OR","OPR_POW","OPR_SHL","OPR_SHR","OPR_SUB","UnOpr","OPR_BNOT","OPR_LEN","OPR_MINUS","OPR_NOT","OPR_NOUNOPR","NO_JUMP","getinstruction","luaK_checkstack","luaK_codeABC","luaK_codeABx","luaK_codeAsBx","luaK_codek","luaK_concat","luaK_dischargevars","luaK_exp2RK","luaK_exp2anyreg","luaK_exp2anyregup","luaK_exp2nextreg","luaK_exp2val","luaK_fixline","luaK_getlabel","luaK_goiffalse","luaK_goiftrue","luaK_indexed","luaK_infix","luaK_intK","luaK_jump","luaK_jumpto","luaK_nil","luaK_patchclose","luaK_patchlist","luaK_patchtohere","luaK_posfix","luaK_prefix","luaK_reserveregs","luaK_ret","luaK_self","luaK_setlist","luaK_setmultret","luaK_setoneret","luaK_setreturns","luaK_storevar","luaK_stringK","R","hasmultret","expkind","VCALL","VVARARG","eqstr","BlockCnt","firstlabel","firstgoto","nactvar","isloop","VVOID","VNIL","VTRUE","VFALSE","VK","VKFLT","VKINT","VNONRELOC","VLOCAL","VUPVAL","VINDEXED","VJMP","VRELOCABLE","expdesc","ival","nval","info","ind","vt","FuncState","bl","lasttarget","jpc","nk","np","firstlocal","nlocvars","freereg","Labellist","semerror","error_expected","checklimit","where","errorlimit","testnext","check","checknext","check_condition","check_match","who","str_checkname","init_exp","codestring","checkname","new_localvar","registerlocalvar","actvar","Vardesc","new_localvarliteral","getlocvar","adjustlocalvars","nvars","newupvalue","singlevaraux","vr","searchvar","markupval","searchupvalue","singlevar","adjust_assign","nexps","enterlevel","leavelevel","closegoto","label","gl","vname","findlabel","lb","newlabelentry","Labeldesc","findgotos","enterblock","open_func","leaveblock","breaklabel","tolevel","removevars","movegotosout","undefgoto","close_func","block_follow","withuntil","statlist","statement","fieldsel","yindex","expr","recfield","cc","nh","rkkey","closelistfield","tostore","listfield","field","constructor","ConsControl","lastlistfield","body","ismethod","new_fs","clp","addprototype","parlist","codeclosure","explist","funcargs","suffixedexp","primaryexp","priority","left","right","subexpr","uop","getunopr","simpleexp","getbinopr","nextop","block","LHS_assign","assignment","lh","vkisvar","nv","conflict","check_conflict","gotostat","labelstat","ll","checkrepeated","skipnoopstat","forbody","isnum","endfor","prep","forstat","fornum","indexname","forlist","test_then_block","escapelist","jf","funcstat","ifstat","whileinit","condexit","whilestat","repeat_init","bl1","bl2","repeatstat","localfunc","localstat","nret","retstat","exprstat","lexstate","funcstate","mainfunc","vkisinreg","lua_writestring","lua_writeline","TextDecoder","decoder","decode","stream","log","copy","opts","luaB_next","ipairsaux","luaB_error","finishpcall","load_aux","envidx","generic_reader","dofilecont","d1","d2","base_funcs","assert","collectgarbage","dofile","getmetatable","ipairs","load","env","loadfile","pairs","method","iszero","pairsmeta","pcall","print","rawequal","rawget","rawlen","rawset","select","setmetatable","parseInt","b_str2int","xpcall","getco","co","auxresume","luaB_auxwrap","luaB_cocreate","NL","co_funcs","isyieldable","running","yield","checkfield","checktab","aux_getn","addfield","set2","sort_comp","partition","lo","choosePivot","rnd","r4","tab_funcs","lsep","insert","TAB_R","move","pack","remove","sort","auxsort","random","unpack","MAX_SAFE_INTEGER","LUA_STRFTIMEOPTIONS","setfield","setallfields","time","utc","getUTCSeconds","getSeconds","getUTCMinutes","getMinutes","getUTCHours","getHours","getUTCDate","getDate","getUTCMonth","getMonth","getUTCFullYear","getFullYear","getUTCDay","getDay","Date","L_MAXDATEFIELD","getfield","delta","locale","days","shortDays","months","shortMonths","AM","PM","am","pm","formats","D","F","T","X","week_number","date","start_of_week","weekday","yday","push_pad_2","pad","checkoption","conv","option","oplen","l_checktime","syslib","stm","strftime","tzString","match","day","getTimezoneOffset","difftime","clock","performance","now","sprintf","L_ESC","strlen","posrelat","SIZELENMOD","lua_number2strx","is","Infinity","zero","fe","num2straux","FLAGS","isalpha","isdigit","iscntrl","isgraph","islower","isupper","isalnum","ispunct","isspace","isxdigit","addliteral","repeat","addquoted","point","ppoint","checkdp","scanformat","strfrmt","form","addlenmod","lenmod","lm","spec","Header","islittle","maxalign","digit","getnum","df","getnumlimit","getoption","opt","getdetails","totalsize","ntoalign","align","packint","unpackint","issigned","unpacknum","dv","setUint8","getFloat32","getFloat64","SPECIALS","MatchState","src_init","src_end","p_end","matchdepth","capture","classend","ms","match_class","matchbracketclass","ec","sig","singlematch","ep","matchbalance","cont","max_expand","min_expand","start_capture","end_capture","capture_to_close","match_capture","check_capture","ai","bi","array_cmp","gotodefault","gotoinit","push_onecapture","push_captures","nlevels","prepstate","lp","reprepstate","str_find_aux","find","nospecials","anchor","gmatch_aux","gm","lastmatch","add_value","tr","news","add_s","strlib","byte","posi","pose","char","dump","format","gmatch","GMatchState","gsub","srcl","max_s","lower","details","setFloat32","packsize","rep","totallen","pi","sub","start","end","ld","upper","createmetatable","iscont","u_posrelat","limits","utf8_decode","p_U","pushutfchar","iter_aux","dec","funcs","codepoint","codes","posj","offset","UTF8PATT","rand_state","l_rand","pushnumint","mathlib","acos","asin","atan","atan2","cos","deg","PI","exp","fmod","log2","log10","imax","imin","modf","ip","rad","low","randomseed","l_srand","sin","sqrt","tan","ult","getinput","checkstack","getthread","thread","settabss","settabsi","settabsb","treatstackoption","auxupvalue","checkupval","argf","argnup","HOOKKEY","hooknames","hookf","dblib","gethook","smask","unmakemask","getinfo","options","getlocal","nvar","getregistry","getupvalue","getuservalue","sethook","hooktable","makemask","setlocal","setupvalue","setuservalue","traceback","upvalueid","upvaluejoin","input","prompt","debug","lsys_load","fengari","JSLIBS","LUA_CSUBSEP","LUA_LSUBSEP","LUA_POF","LUA_OFSEP","AUXMARK","seeglb","readable","lookforfunc","sym","checkjslib","addtojslib","lsys_sym","setpath","fieldname","envname","dft","nver","noenv","plib","pushnexttemplate","searchpath","dirsep","findfile","pname","checkload","searcher_Lua","loadfunc","openfunc","mark","searcher_C","searcher_Croot","searcher_preload","findloader_cont","ll_require_cont","ll_require_cont2","pk_funcs","loadlib","ll_funcs","findloader","createjslibstable","searchers","createsearcherstable","__webpack_exports__","fengari__WEBPACK_IMPORTED_MODULE_0__","fengari_interop__WEBPACK_IMPORTED_MODULE_1__","interop","ok","SyntaxError","document","HTMLDocument","msghandler","ErrorEvent","bubbles","cancelable","lineno","run_lua_script","location","syntaxerror","configurable","currentScript","dispatchEvent","process_xhr_response","Event","contentTypeRegexp","luaVersionRegex","try_tag","tagName","contentTypeMatch","mimetype","hasAttribute","getAttribute","readyState","async","fetch","credentials","crossorigin","crossorigin_to_credentials","redirect","integrity","then","resp","arrayBuffer","catch","reason","onreadystatechange","innerHTML","run_lua_script_tag","MutationObserver","records","observer","record","addedNodes","observe","childList","subtree","querySelectorAll","hasjumps","tonumeral","make_tvalue","ek","pfrom","pl","getjump","fixjump","jmp","l1","l2","list","condjump","getjumpcontroloffset","getjumpcontrol","patchtestreg","node","removevalues","patchlistaux","vtarget","dtarget","luaK_code","dischargejpc","codeextraarg","newstack","freeexp","freeexps","e1","r1","r2","addk","luaK_numberK","boolK","code_loadbool","jump","discharge2reg","discharge2anyreg","need_value","exp2reg","final","p_t","fj","vk","nilK","negatecondition","jumponcond","ie","constfolding","validop","codebinexpval","rk2","rk1","opr","codecomp","codeunexpval","codenot","ereg","nelems","ex","LUAC_DATA","BytecodeParser","Z","intSize","size_tSize","instructionSize","integerSize","numberSize","arraybuffer","getInt32","LoadInteger","LoadByte","LoadSize_t","read","LoadInt","LoadNumber","LoadString","LoadFunction","psource","LoadCode","LoadConstants","LoadUpvalues","LoadProtos","LoadDebug","checkliteral","checksize","why","S","checkHeader","LUAC_VERSION","DumpState","write","DumpBlock","DumpByte","DumpInt","ab","setInt32","DumpInteger","DumpNumber","DumpString","DumpProtos","DumpFunction","DumpCode","DumpConstants","DumpUpvalues","DumpDebug","DumpHeader","__WEBPACK_AMD_DEFINE_RESULT__","re","not_string","not_bool","not_type","not_primitive","number","numeric_arg","json","not_json","text","modulo","placeholder","key_access","index_access","sign","parse_tree","argv","pad_character","pad_length","is_positive","cursor","tree_length","output","toExponential","toFixed","substring","slice","toLowerCase","valueOf","toUpperCase","replace","charAt","sprintf_format","sprintf_cache","_fmt","arg_names","field_list","replacement_field","field_match","sprintf_parse","vsprintf","loadedlibs"],"mappings":"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AAQ,GAAzBW,cAGJ,EACA,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,GAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GACjD,GAAO,GAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EACjD,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,E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","file":"fengari-web.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"fengari\"] = factory();\n\telse\n\t\troot[\"fengari\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 34);\n","/**\n@license MIT\n\nCopyright © 2017-2018 Benoit Giannangeli\nCopyright © 2017-2018 Daurnimator\nCopyright © 1994–2017 Lua.org, PUC-Rio.\n*/\n\n\"use strict\";\n\nconst core = require(\"./fengaricore.js\");\n\nmodule.exports.FENGARI_AUTHORS = core.FENGARI_AUTHORS;\nmodule.exports.FENGARI_COPYRIGHT = core.FENGARI_COPYRIGHT;\nmodule.exports.FENGARI_RELEASE = core.FENGARI_RELEASE;\nmodule.exports.FENGARI_VERSION = core.FENGARI_VERSION;\nmodule.exports.FENGARI_VERSION_MAJOR = core.FENGARI_VERSION_MAJOR;\nmodule.exports.FENGARI_VERSION_MINOR = core.FENGARI_VERSION_MINOR;\nmodule.exports.FENGARI_VERSION_NUM = core.FENGARI_VERSION_NUM;\nmodule.exports.FENGARI_VERSION_RELEASE = core.FENGARI_VERSION_RELEASE;\n\nmodule.exports.luastring_eq = core.luastring_eq;\nmodule.exports.luastring_indexOf = core.luastring_indexOf;\nmodule.exports.luastring_of = core.luastring_of;\nmodule.exports.to_jsstring = core.to_jsstring;\nmodule.exports.to_luastring = core.to_luastring;\nmodule.exports.to_uristring = core.to_uristring;\n\nconst luaconf = require('./luaconf.js');\nconst lua = require('./lua.js');\nconst lauxlib = require('./lauxlib.js');\nconst lualib = require('./lualib.js');\n\nmodule.exports.luaconf = luaconf;\nmodule.exports.lua = lua;\nmodule.exports.lauxlib = lauxlib;\nmodule.exports.lualib = lualib;\n","\"use strict\";\n\n/*\n * Fengari specific string conversion functions\n */\n\nlet luastring_from;\nif (typeof Uint8Array.from === \"function\") {\n luastring_from = Uint8Array.from.bind(Uint8Array);\n} else {\n luastring_from = function(a) {\n let i = 0;\n let len = a.length;\n let r = new Uint8Array(len);\n while (len > i) r[i] = a[i++];\n return r;\n };\n}\n\nlet luastring_indexOf;\nif (typeof (new Uint8Array().indexOf) === \"function\") {\n luastring_indexOf = function(s, v, i) {\n return s.indexOf(v, i);\n };\n} else {\n /* Browsers that don't support Uint8Array.indexOf seem to allow using Array.indexOf on Uint8Array objects e.g. IE11 */\n let array_indexOf = [].indexOf;\n if (array_indexOf.call(new Uint8Array(1), 0) !== 0) throw Error(\"missing .indexOf\");\n luastring_indexOf = function(s, v, i) {\n return array_indexOf.call(s, v, i);\n };\n}\n\nlet luastring_of;\nif (typeof Uint8Array.of === \"function\") {\n luastring_of = Uint8Array.of.bind(Uint8Array);\n} else {\n luastring_of = function() {\n return luastring_from(arguments);\n };\n}\n\nconst is_luastring = function(s) {\n return s instanceof Uint8Array;\n};\n\n/* test two lua strings for equality */\nconst luastring_eq = function(a, b) {\n if (a !== b) {\n let len = a.length;\n if (len !== b.length) return false;\n /* XXX: Should this be a constant time algorithm? */\n for (let i=0; i<len; i++)\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n\nconst unicode_error_message = \"cannot convert invalid utf8 to javascript string\";\nconst to_jsstring = function(value, from, to, replacement_char) {\n if (!is_luastring(value)) throw new TypeError(\"to_jsstring expects a Uint8Array\");\n\n if (to === void 0) {\n to = value.length;\n } else {\n to = Math.min(value.length, to);\n }\n\n let str = \"\";\n for (let i = (from!==void 0?from:0); i < to;) {\n let u0 = value[i++];\n if (u0 < 0x80) {\n /* single byte sequence */\n str += String.fromCharCode(u0);\n } else if (u0 < 0xC2 || u0 > 0xF4) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n } else if (u0 <= 0xDF) {\n /* two byte sequence */\n if (i >= to) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n continue;\n }\n let u1 = value[i++];\n if ((u1&0xC0) !== 0x80) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n continue;\n }\n str += String.fromCharCode(((u0 & 0x1F) << 6) + (u1 & 0x3F));\n } else if (u0 <= 0xEF) {\n /* three byte sequence */\n if (i+1 >= to) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n continue;\n }\n let u1 = value[i++];\n if ((u1&0xC0) !== 0x80) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n continue;\n }\n let u2 = value[i++];\n if ((u2&0xC0) !== 0x80) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n continue;\n }\n let u = ((u0 & 0x0F) << 12) + ((u1 & 0x3F) << 6) + (u2 & 0x3F);\n if (u <= 0xFFFF) { /* BMP codepoint */\n str += String.fromCharCode(u);\n } else { /* Astral codepoint */\n u -= 0x10000;\n let s1 = (u >> 10) + 0xD800;\n let s2 = (u % 0x400) + 0xDC00;\n str += String.fromCharCode(s1, s2);\n }\n } else {\n /* four byte sequence */\n if (i+2 >= to) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n continue;\n }\n let u1 = value[i++];\n if ((u1&0xC0) !== 0x80) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n continue;\n }\n let u2 = value[i++];\n if ((u2&0xC0) !== 0x80) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n continue;\n }\n let u3 = value[i++];\n if ((u3&0xC0) !== 0x80) {\n if (!replacement_char) throw RangeError(unicode_error_message);\n str += \"�\";\n continue;\n }\n /* Has to be astral codepoint */\n let u = ((u0 & 0x07) << 18) + ((u1 & 0x3F) << 12) + ((u2 & 0x3F) << 6) + (u3 & 0x3F);\n u -= 0x10000;\n let s1 = (u >> 10) + 0xD800;\n let s2 = (u % 0x400) + 0xDC00;\n str += String.fromCharCode(s1, s2);\n }\n }\n return str;\n};\n\n/* bytes allowed unescaped in a uri */\nconst uri_allowed = (\";,/?:@&=+$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,-_.!~*'()#\").split('').reduce(function(uri_allowed, c) {\n uri_allowed[c.charCodeAt(0)] = true;\n return uri_allowed;\n}, {});\n\n/* utility function to convert a lua string to a js string with uri escaping */\nconst to_uristring = function(a) {\n if (!is_luastring(a)) throw new TypeError(\"to_uristring expects a Uint8Array\");\n let s = \"\";\n for (let i=0; i<a.length; i++) {\n let v = a[i];\n if (uri_allowed[v]) {\n s += String.fromCharCode(v);\n } else {\n s += \"%\" + (v<0x10?\"0\":\"\") + v.toString(16);\n }\n }\n return s;\n};\n\nconst to_luastring_cache = {};\n\nconst to_luastring = function(str, cache) {\n if (typeof str !== \"string\") throw new TypeError(\"to_luastring expects a javascript string\");\n\n if (cache) {\n let cached = to_luastring_cache[str];\n if (is_luastring(cached)) return cached;\n }\n\n let len = str.length;\n let outU8Array = Array(len); /* array is at *least* going to be length of string */\n let outIdx = 0;\n for (let i = 0; i < len; ++i) {\n let u = str.charCodeAt(i);\n if (u <= 0x7F) {\n outU8Array[outIdx++] = u;\n } else if (u <= 0x7FF) {\n outU8Array[outIdx++] = 0xC0 | (u >> 6);\n outU8Array[outIdx++] = 0x80 | (u & 63);\n } else {\n /* This part is to work around possible lack of String.codePointAt */\n if (u >= 0xD800 && u <= 0xDBFF && (i+1) < len) {\n /* is first half of surrogate pair */\n let v = str.charCodeAt(i+1);\n if (v >= 0xDC00 && v <= 0xDFFF) {\n /* is valid low surrogate */\n i++;\n u = (u - 0xD800) * 0x400 + v + 0x2400;\n }\n }\n if (u <= 0xFFFF) {\n outU8Array[outIdx++] = 0xE0 | (u >> 12);\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\n outU8Array[outIdx++] = 0x80 | (u & 63);\n } else {\n outU8Array[outIdx++] = 0xF0 | (u >> 18);\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\n outU8Array[outIdx++] = 0x80 | (u & 63);\n }\n }\n }\n outU8Array = luastring_from(outU8Array);\n\n if (cache) to_luastring_cache[str] = outU8Array;\n\n return outU8Array;\n};\n\nconst from_userstring = function(str) {\n if (!is_luastring(str)) {\n if (typeof str === \"string\") {\n str = to_luastring(str);\n } else {\n throw new TypeError(\"expects an array of bytes or javascript string\");\n }\n }\n return str;\n};\n\nmodule.exports.luastring_from = luastring_from;\nmodule.exports.luastring_indexOf = luastring_indexOf;\nmodule.exports.luastring_of = luastring_of;\nmodule.exports.is_luastring = is_luastring;\nmodule.exports.luastring_eq = luastring_eq;\nmodule.exports.to_jsstring = to_jsstring;\nmodule.exports.to_uristring = to_uristring;\nmodule.exports.to_luastring = to_luastring;\nmodule.exports.from_userstring = from_userstring;\n\n\n/* mark for precompiled code ('<esc>Lua') */\nconst LUA_SIGNATURE = to_luastring(\"\\x1bLua\");\n\nconst LUA_VERSION_MAJOR = \"5\";\nconst LUA_VERSION_MINOR = \"3\";\nconst LUA_VERSION_NUM = 503;\nconst LUA_VERSION_RELEASE = \"4\";\n\nconst LUA_VERSION = \"Lua \" + LUA_VERSION_MAJOR + \".\" + LUA_VERSION_MINOR;\nconst LUA_RELEASE = LUA_VERSION + \".\" + LUA_VERSION_RELEASE;\nconst LUA_COPYRIGHT = LUA_RELEASE + \" Copyright (C) 1994-2017 Lua.org, PUC-Rio\";\nconst LUA_AUTHORS = \"R. Ierusalimschy, L. H. de Figueiredo, W. Celes\";\n\nmodule.exports.LUA_SIGNATURE = LUA_SIGNATURE;\nmodule.exports.LUA_VERSION_MAJOR = LUA_VERSION_MAJOR;\nmodule.exports.LUA_VERSION_MINOR = LUA_VERSION_MINOR;\nmodule.exports.LUA_VERSION_NUM = LUA_VERSION_NUM;\nmodule.exports.LUA_VERSION_RELEASE = LUA_VERSION_RELEASE;\nmodule.exports.LUA_VERSION = LUA_VERSION;\nmodule.exports.LUA_RELEASE = LUA_RELEASE;\nmodule.exports.LUA_COPYRIGHT = LUA_COPYRIGHT;\nmodule.exports.LUA_AUTHORS = LUA_AUTHORS;\n\n\nconst thread_status = {\n LUA_OK: 0,\n LUA_YIELD: 1,\n LUA_ERRRUN: 2,\n LUA_ERRSYNTAX: 3,\n LUA_ERRMEM: 4,\n LUA_ERRGCMM: 5,\n LUA_ERRERR: 6\n};\n\nconst constant_types = {\n LUA_TNONE: -1,\n LUA_TNIL: 0,\n LUA_TBOOLEAN: 1,\n LUA_TLIGHTUSERDATA: 2,\n LUA_TNUMBER: 3,\n LUA_TSTRING: 4,\n LUA_TTABLE: 5,\n LUA_TFUNCTION: 6,\n LUA_TUSERDATA: 7,\n LUA_TTHREAD: 8,\n LUA_NUMTAGS: 9\n};\n\nconstant_types.LUA_TSHRSTR = constant_types.LUA_TSTRING | (0 << 4); /* short strings */\nconstant_types.LUA_TLNGSTR = constant_types.LUA_TSTRING | (1 << 4); /* long strings */\n\nconstant_types.LUA_TNUMFLT = constant_types.LUA_TNUMBER | (0 << 4); /* float numbers */\nconstant_types.LUA_TNUMINT = constant_types.LUA_TNUMBER | (1 << 4); /* integer numbers */\n\nconstant_types.LUA_TLCL = constant_types.LUA_TFUNCTION | (0 << 4); /* Lua closure */\nconstant_types.LUA_TLCF = constant_types.LUA_TFUNCTION | (1 << 4); /* light C function */\nconstant_types.LUA_TCCL = constant_types.LUA_TFUNCTION | (2 << 4); /* C closure */\n\n/*\n** Comparison and arithmetic functions\n*/\n\nconst LUA_OPADD = 0; /* ORDER TM, ORDER OP */\nconst LUA_OPSUB = 1;\nconst LUA_OPMUL = 2;\nconst LUA_OPMOD = 3;\nconst LUA_OPPOW = 4;\nconst LUA_OPDIV = 5;\nconst LUA_OPIDIV = 6;\nconst LUA_OPBAND = 7;\nconst LUA_OPBOR = 8;\nconst LUA_OPBXOR = 9;\nconst LUA_OPSHL = 10;\nconst LUA_OPSHR = 11;\nconst LUA_OPUNM = 12;\nconst LUA_OPBNOT = 13;\n\nconst LUA_OPEQ = 0;\nconst LUA_OPLT = 1;\nconst LUA_OPLE = 2;\n\nconst LUA_MINSTACK = 20;\n\nconst { LUAI_MAXSTACK } = require('./luaconf.js');\nconst LUA_REGISTRYINDEX = -LUAI_MAXSTACK - 1000;\n\nconst lua_upvalueindex = function(i) {\n return LUA_REGISTRYINDEX - i;\n};\n\n/* predefined values in the registry */\nconst LUA_RIDX_MAINTHREAD = 1;\nconst LUA_RIDX_GLOBALS = 2;\nconst LUA_RIDX_LAST = LUA_RIDX_GLOBALS;\n\nclass lua_Debug {\n constructor() {\n this.event = NaN;\n this.name = null; /* (n) */\n this.namewhat = null; /* (n) 'global', 'local', 'field', 'method' */\n this.what = null; /* (S) 'Lua', 'C', 'main', 'tail' */\n this.source = null; /* (S) */\n this.currentline = NaN; /* (l) */\n this.linedefined = NaN; /* (S) */\n this.lastlinedefined = NaN; /* (S) */\n this.nups = NaN; /* (u) number of upvalues */\n this.nparams = NaN; /* (u) number of parameters */\n this.isvararg = NaN; /* (u) */\n this.istailcall = NaN; /* (t) */\n this.short_src = null; /* (S) */\n /* private part */\n this.i_ci = null; /* active function */\n }\n}\n\n/*\n** Event codes\n*/\nconst LUA_HOOKCALL = 0;\nconst LUA_HOOKRET = 1;\nconst LUA_HOOKLINE = 2;\nconst LUA_HOOKCOUNT = 3;\nconst LUA_HOOKTAILCALL = 4;\n\n\n/*\n** Event masks\n*/\nconst LUA_MASKCALL = (1 << LUA_HOOKCALL);\nconst LUA_MASKRET = (1 << LUA_HOOKRET);\nconst LUA_MASKLINE = (1 << LUA_HOOKLINE);\nconst LUA_MASKCOUNT = (1 << LUA_HOOKCOUNT);\n\nmodule.exports.LUA_HOOKCALL = LUA_HOOKCALL;\nmodule.exports.LUA_HOOKCOUNT = LUA_HOOKCOUNT;\nmodule.exports.LUA_HOOKLINE = LUA_HOOKLINE;\nmodule.exports.LUA_HOOKRET = LUA_HOOKRET;\nmodule.exports.LUA_HOOKTAILCALL = LUA_HOOKTAILCALL;\nmodule.exports.LUA_MASKCALL = LUA_MASKCALL;\nmodule.exports.LUA_MASKCOUNT = LUA_MASKCOUNT;\nmodule.exports.LUA_MASKLINE = LUA_MASKLINE;\nmodule.exports.LUA_MASKRET = LUA_MASKRET;\nmodule.exports.LUA_MINSTACK = LUA_MINSTACK;\nmodule.exports.LUA_MULTRET = -1;\nmodule.exports.LUA_OPADD = LUA_OPADD;\nmodule.exports.LUA_OPBAND = LUA_OPBAND;\nmodule.exports.LUA_OPBNOT = LUA_OPBNOT;\nmodule.exports.LUA_OPBOR = LUA_OPBOR;\nmodule.exports.LUA_OPBXOR = LUA_OPBXOR;\nmodule.exports.LUA_OPDIV = LUA_OPDIV;\nmodule.exports.LUA_OPEQ = LUA_OPEQ;\nmodule.exports.LUA_OPIDIV = LUA_OPIDIV;\nmodule.exports.LUA_OPLE = LUA_OPLE;\nmodule.exports.LUA_OPLT = LUA_OPLT;\nmodule.exports.LUA_OPMOD = LUA_OPMOD;\nmodule.exports.LUA_OPMUL = LUA_OPMUL;\nmodule.exports.LUA_OPPOW = LUA_OPPOW;\nmodule.exports.LUA_OPSHL = LUA_OPSHL;\nmodule.exports.LUA_OPSHR = LUA_OPSHR;\nmodule.exports.LUA_OPSUB = LUA_OPSUB;\nmodule.exports.LUA_OPUNM = LUA_OPUNM;\nmodule.exports.LUA_REGISTRYINDEX = LUA_REGISTRYINDEX;\nmodule.exports.LUA_RIDX_GLOBALS = LUA_RIDX_GLOBALS;\nmodule.exports.LUA_RIDX_LAST = LUA_RIDX_LAST;\nmodule.exports.LUA_RIDX_MAINTHREAD = LUA_RIDX_MAINTHREAD;\nmodule.exports.constant_types = constant_types;\nmodule.exports.lua_Debug = lua_Debug;\nmodule.exports.lua_upvalueindex = lua_upvalueindex;\nmodule.exports.thread_status = thread_status;\n","\"use strict\";\n\nconst defs = require(\"./defs.js\");\nconst lapi = require(\"./lapi.js\");\nconst ldebug = require(\"./ldebug.js\");\nconst ldo = require(\"./ldo.js\");\nconst lstate = require(\"./lstate.js\");\n\nmodule.exports.LUA_AUTHORS = defs.LUA_AUTHORS;\nmodule.exports.LUA_COPYRIGHT = defs.LUA_COPYRIGHT;\nmodule.exports.LUA_ERRERR = defs.thread_status.LUA_ERRERR;\nmodule.exports.LUA_ERRGCMM = defs.thread_status.LUA_ERRGCMM;\nmodule.exports.LUA_ERRMEM = defs.thread_status.LUA_ERRMEM;\nmodule.exports.LUA_ERRRUN = defs.thread_status.LUA_ERRRUN;\nmodule.exports.LUA_ERRSYNTAX = defs.thread_status.LUA_ERRSYNTAX;\nmodule.exports.LUA_HOOKCALL = defs.LUA_HOOKCALL;\nmodule.exports.LUA_HOOKCOUNT = defs.LUA_HOOKCOUNT;\nmodule.exports.LUA_HOOKLINE = defs.LUA_HOOKLINE;\nmodule.exports.LUA_HOOKRET = defs.LUA_HOOKRET;\nmodule.exports.LUA_HOOKTAILCALL = defs.LUA_HOOKTAILCALL;\nmodule.exports.LUA_MASKCALL = defs.LUA_MASKCALL;\nmodule.exports.LUA_MASKCOUNT = defs.LUA_MASKCOUNT;\nmodule.exports.LUA_MASKLINE = defs.LUA_MASKLINE;\nmodule.exports.LUA_MASKRET = defs.LUA_MASKRET;\nmodule.exports.LUA_MINSTACK = defs.LUA_MINSTACK;\nmodule.exports.LUA_MULTRET = defs.LUA_MULTRET;\nmodule.exports.LUA_NUMTAGS = defs.constant_types.LUA_NUMTAGS;\nmodule.exports.LUA_OK = defs.thread_status.LUA_OK;\nmodule.exports.LUA_OPADD = defs.LUA_OPADD;\nmodule.exports.LUA_OPBAND = defs.LUA_OPBAND;\nmodule.exports.LUA_OPBNOT = defs.LUA_OPBNOT;\nmodule.exports.LUA_OPBOR = defs.LUA_OPBOR;\nmodule.exports.LUA_OPBXOR = defs.LUA_OPBXOR;\nmodule.exports.LUA_OPDIV = defs.LUA_OPDIV;\nmodule.exports.LUA_OPEQ = defs.LUA_OPEQ;\nmodule.exports.LUA_OPIDIV = defs.LUA_OPIDIV;\nmodule.exports.LUA_OPLE = defs.LUA_OPLE;\nmodule.exports.LUA_OPLT = defs.LUA_OPLT;\nmodule.exports.LUA_OPMOD = defs.LUA_OPMOD;\nmodule.exports.LUA_OPMUL = defs.LUA_OPMUL;\nmodule.exports.LUA_OPPOW = defs.LUA_OPPOW;\nmodule.exports.LUA_OPSHL = defs.LUA_OPSHL;\nmodule.exports.LUA_OPSHR = defs.LUA_OPSHR;\nmodule.exports.LUA_OPSUB = defs.LUA_OPSUB;\nmodule.exports.LUA_OPUNM = defs.LUA_OPUNM;\nmodule.exports.LUA_REGISTRYINDEX = defs.LUA_REGISTRYINDEX;\nmodule.exports.LUA_RELEASE = defs.LUA_RELEASE;\nmodule.exports.LUA_RIDX_GLOBALS = defs.LUA_RIDX_GLOBALS;\nmodule.exports.LUA_RIDX_LAST = defs.LUA_RIDX_LAST;\nmodule.exports.LUA_RIDX_MAINTHREAD = defs.LUA_RIDX_MAINTHREAD;\nmodule.exports.LUA_SIGNATURE = defs.LUA_SIGNATURE;\nmodule.exports.LUA_TNONE = defs.constant_types.LUA_TNONE;\nmodule.exports.LUA_TNIL = defs.constant_types.LUA_TNIL;\nmodule.exports.LUA_TBOOLEAN = defs.constant_types.LUA_TBOOLEAN;\nmodule.exports.LUA_TLIGHTUSERDATA = defs.constant_types.LUA_TLIGHTUSERDATA;\nmodule.exports.LUA_TNUMBER = defs.constant_types.LUA_TNUMBER;\nmodule.exports.LUA_TSTRING = defs.constant_types.LUA_TSTRING;\nmodule.exports.LUA_TTABLE = defs.constant_types.LUA_TTABLE;\nmodule.exports.LUA_TFUNCTION = defs.constant_types.LUA_TFUNCTION;\nmodule.exports.LUA_TUSERDATA = defs.constant_types.LUA_TUSERDATA;\nmodule.exports.LUA_TTHREAD = defs.constant_types.LUA_TTHREAD;\nmodule.exports.LUA_VERSION = defs.LUA_VERSION;\nmodule.exports.LUA_VERSION_MAJOR = defs.LUA_VERSION_MAJOR;\nmodule.exports.LUA_VERSION_MINOR = defs.LUA_VERSION_MINOR;\nmodule.exports.LUA_VERSION_NUM = defs.LUA_VERSION_NUM;\nmodule.exports.LUA_VERSION_RELEASE = defs.LUA_VERSION_RELEASE;\nmodule.exports.LUA_YIELD = defs.thread_status.LUA_YIELD;\nmodule.exports.lua_Debug = defs.lua_Debug;\nmodule.exports.lua_upvalueindex = defs.lua_upvalueindex;\nmodule.exports.lua_absindex = lapi.lua_absindex;\nmodule.exports.lua_arith = lapi.lua_arith;\nmodule.exports.lua_atpanic = lapi.lua_atpanic;\nmodule.exports.lua_atnativeerror = lapi.lua_atnativeerror;\nmodule.exports.lua_call = lapi.lua_call;\nmodule.exports.lua_callk = lapi.lua_callk;\nmodule.exports.lua_checkstack = lapi.lua_checkstack;\nmodule.exports.lua_close = lstate.lua_close;\nmodule.exports.lua_compare = lapi.lua_compare;\nmodule.exports.lua_concat = lapi.lua_concat;\nmodule.exports.lua_copy = lapi.lua_copy;\nmodule.exports.lua_createtable = lapi.lua_createtable;\nmodule.exports.lua_dump = lapi.lua_dump;\nmodule.exports.lua_error = lapi.lua_error;\nmodule.exports.lua_gc = lapi.lua_gc;\nmodule.exports.lua_getallocf = lapi.lua_getallocf;\nmodule.exports.lua_getextraspace = lapi.lua_getextraspace;\nmodule.exports.lua_getfield = lapi.lua_getfield;\nmodule.exports.lua_getglobal = lapi.lua_getglobal;\nmodule.exports.lua_gethook = ldebug.lua_gethook;\nmodule.exports.lua_gethookcount = ldebug.lua_gethookcount;\nmodule.exports.lua_gethookmask = ldebug.lua_gethookmask;\nmodule.exports.lua_geti = lapi.lua_geti;\nmodule.exports.lua_getinfo = ldebug.lua_getinfo;\nmodule.exports.lua_getlocal = ldebug.lua_getlocal;\nmodule.exports.lua_getmetatable = lapi.lua_getmetatable;\nmodule.exports.lua_getstack = ldebug.lua_getstack;\nmodule.exports.lua_gettable = lapi.lua_gettable;\nmodule.exports.lua_gettop = lapi.lua_gettop;\nmodule.exports.lua_getupvalue = lapi.lua_getupvalue;\nmodule.exports.lua_getuservalue = lapi.lua_getuservalue;\nmodule.exports.lua_insert = lapi.lua_insert;\nmodule.exports.lua_isboolean = lapi.lua_isboolean;\nmodule.exports.lua_iscfunction = lapi.lua_iscfunction;\nmodule.exports.lua_isfunction = lapi.lua_isfunction;\nmodule.exports.lua_isinteger = lapi.lua_isinteger;\nmodule.exports.lua_islightuserdata = lapi.lua_islightuserdata;\nmodule.exports.lua_isnil = lapi.lua_isnil;\nmodule.exports.lua_isnone = lapi.lua_isnone;\nmodule.exports.lua_isnoneornil = lapi.lua_isnoneornil;\nmodule.exports.lua_isnumber = lapi.lua_isnumber;\nmodule.exports.lua_isproxy = lapi.lua_isproxy;\nmodule.exports.lua_isstring = lapi.lua_isstring;\nmodule.exports.lua_istable = lapi.lua_istable;\nmodule.exports.lua_isthread = lapi.lua_isthread;\nmodule.exports.lua_isuserdata = lapi.lua_isuserdata;\nmodule.exports.lua_isyieldable = ldo.lua_isyieldable;\nmodule.exports.lua_len = lapi.lua_len;\nmodule.exports.lua_load = lapi.lua_load;\nmodule.exports.lua_newstate = lstate.lua_newstate;\nmodule.exports.lua_newtable = lapi.lua_newtable;\nmodule.exports.lua_newthread = lstate.lua_newthread;\nmodule.exports.lua_newuserdata = lapi.lua_newuserdata;\nmodule.exports.lua_next = lapi.lua_next;\nmodule.exports.lua_pcall = lapi.lua_pcall;\nmodule.exports.lua_pcallk = lapi.lua_pcallk;\nmodule.exports.lua_pop = lapi.lua_pop;\nmodule.exports.lua_pushboolean = lapi.lua_pushboolean;\nmodule.exports.lua_pushcclosure = lapi.lua_pushcclosure;\nmodule.exports.lua_pushcfunction = lapi.lua_pushcfunction;\nmodule.exports.lua_pushfstring = lapi.lua_pushfstring;\nmodule.exports.lua_pushglobaltable = lapi.lua_pushglobaltable;\nmodule.exports.lua_pushinteger = lapi.lua_pushinteger;\nmodule.exports.lua_pushjsclosure = lapi.lua_pushjsclosure;\nmodule.exports.lua_pushjsfunction = lapi.lua_pushjsfunction;\nmodule.exports.lua_pushlightuserdata = lapi.lua_pushlightuserdata;\nmodule.exports.lua_pushliteral = lapi.lua_pushliteral;\nmodule.exports.lua_pushlstring = lapi.lua_pushlstring;\nmodule.exports.lua_pushnil = lapi.lua_pushnil;\nmodule.exports.lua_pushnumber = lapi.lua_pushnumber;\nmodule.exports.lua_pushstring = lapi.lua_pushstring;\nmodule.exports.lua_pushthread = lapi.lua_pushthread;\nmodule.exports.lua_pushvalue = lapi.lua_pushvalue;\nmodule.exports.lua_pushvfstring = lapi.lua_pushvfstring;\nmodule.exports.lua_rawequal = lapi.lua_rawequal;\nmodule.exports.lua_rawget = lapi.lua_rawget;\nmodule.exports.lua_rawgeti = lapi.lua_rawgeti;\nmodule.exports.lua_rawgetp = lapi.lua_rawgetp;\nmodule.exports.lua_rawlen = lapi.lua_rawlen;\nmodule.exports.lua_rawset = lapi.lua_rawset;\nmodule.exports.lua_rawseti = lapi.lua_rawseti;\nmodule.exports.lua_rawsetp = lapi.lua_rawsetp;\nmodule.exports.lua_register = lapi.lua_register;\nmodule.exports.lua_remove = lapi.lua_remove;\nmodule.exports.lua_replace = lapi.lua_replace;\nmodule.exports.lua_resume = ldo.lua_resume;\nmodule.exports.lua_rotate = lapi.lua_rotate;\nmodule.exports.lua_setallof = ldo.lua_setallof;\nmodule.exports.lua_setfield = lapi.lua_setfield;\nmodule.exports.lua_setglobal = lapi.lua_setglobal;\nmodule.exports.lua_sethook = ldebug.lua_sethook;\nmodule.exports.lua_seti = lapi.lua_seti;\nmodule.exports.lua_setlocal = ldebug.lua_setlocal;\nmodule.exports.lua_setmetatable = lapi.lua_setmetatable;\nmodule.exports.lua_settable = lapi.lua_settable;\nmodule.exports.lua_settop = lapi.lua_settop;\nmodule.exports.lua_setupvalue = lapi.lua_setupvalue;\nmodule.exports.lua_setuservalue = lapi.lua_setuservalue;\nmodule.exports.lua_status = lapi.lua_status;\nmodule.exports.lua_stringtonumber = lapi.lua_stringtonumber;\nmodule.exports.lua_toboolean = lapi.lua_toboolean;\nmodule.exports.lua_todataview = lapi.lua_todataview;\nmodule.exports.lua_tointeger = lapi.lua_tointeger;\nmodule.exports.lua_tointegerx = lapi.lua_tointegerx;\nmodule.exports.lua_tojsstring = lapi.lua_tojsstring;\nmodule.exports.lua_tolstring = lapi.lua_tolstring;\nmodule.exports.lua_tonumber = lapi.lua_tonumber;\nmodule.exports.lua_tonumberx = lapi.lua_tonumberx;\nmodule.exports.lua_topointer = lapi.lua_topointer;\nmodule.exports.lua_toproxy = lapi.lua_toproxy;\nmodule.exports.lua_tostring = lapi.lua_tostring;\nmodule.exports.lua_tothread = lapi.lua_tothread;\nmodule.exports.lua_touserdata = lapi.lua_touserdata;\nmodule.exports.lua_type = lapi.lua_type;\nmodule.exports.lua_typename = lapi.lua_typename;\nmodule.exports.lua_upvalueid = lapi.lua_upvalueid;\nmodule.exports.lua_upvaluejoin = lapi.lua_upvaluejoin;\nmodule.exports.lua_version = lapi.lua_version;\nmodule.exports.lua_xmove = lapi.lua_xmove;\nmodule.exports.lua_yield = ldo.lua_yield;\nmodule.exports.lua_yieldk = ldo.lua_yieldk;\nmodule.exports.lua_tocfunction = lapi.lua_tocfunction;\n","\"use strict\";\n\nconst conf = (process.env.FENGARICONF ? JSON.parse(process.env.FENGARICONF) : {});\n\nconst {\n LUA_VERSION_MAJOR,\n LUA_VERSION_MINOR,\n to_luastring\n} = require('./defs.js');\n\n/*\n** LUA_PATH_SEP is the character that separates templates in a path.\n** LUA_PATH_MARK is the string that marks the substitution points in a\n** template.\n** LUA_EXEC_DIR in a Windows path is replaced by the executable's\n** directory.\n*/\nconst LUA_PATH_SEP = \";\";\nmodule.exports.LUA_PATH_SEP = LUA_PATH_SEP;\n\nconst LUA_PATH_MARK = \"?\";\nmodule.exports.LUA_PATH_MARK = LUA_PATH_MARK;\n\nconst LUA_EXEC_DIR = \"!\";\nmodule.exports.LUA_EXEC_DIR = LUA_EXEC_DIR;\n\n/*\n@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for\n** Lua libraries.\n@@ LUA_JSPATH_DEFAULT is the default path that Lua uses to look for\n** JS libraries.\n** CHANGE them if your machine has a non-conventional directory\n** hierarchy or if you want to install your libraries in\n** non-conventional directories.\n*/\nconst LUA_VDIR = LUA_VERSION_MAJOR + \".\" + LUA_VERSION_MINOR;\nmodule.exports.LUA_VDIR = LUA_VDIR;\n\nif (typeof process === \"undefined\") {\n const LUA_DIRSEP = \"/\";\n module.exports.LUA_DIRSEP = LUA_DIRSEP;\n\n const LUA_LDIR = \"./lua/\" + LUA_VDIR + \"/\";\n module.exports.LUA_LDIR = LUA_LDIR;\n\n const LUA_JSDIR = LUA_LDIR;\n module.exports.LUA_JSDIR = LUA_JSDIR;\n\n const LUA_PATH_DEFAULT = to_luastring(\n LUA_LDIR + \"?.lua;\" + LUA_LDIR + \"?/init.lua;\" +\n /* LUA_JSDIR excluded as it is equal to LUA_LDIR */\n \"./?.lua;./?/init.lua\"\n );\n module.exports.LUA_PATH_DEFAULT = LUA_PATH_DEFAULT;\n\n const LUA_JSPATH_DEFAULT = to_luastring(\n LUA_JSDIR + \"?.js;\" + LUA_JSDIR + \"loadall.js;./?.js\"\n );\n module.exports.LUA_JSPATH_DEFAULT = LUA_JSPATH_DEFAULT;\n} else if (require('os').platform() === 'win32') {\n const LUA_DIRSEP = \"\\\\\";\n module.exports.LUA_DIRSEP = LUA_DIRSEP;\n\n /*\n ** In Windows, any exclamation mark ('!') in the path is replaced by the\n ** path of the directory of the executable file of the current process.\n */\n const LUA_LDIR = \"!\\\\lua\\\\\";\n module.exports.LUA_LDIR = LUA_LDIR;\n\n const LUA_JSDIR = \"!\\\\\";\n module.exports.LUA_JSDIR = LUA_JSDIR;\n\n const LUA_SHRDIR = \"!\\\\..\\\\share\\\\lua\\\\\" + LUA_VDIR + \"\\\\\";\n module.exports.LUA_SHRDIR = LUA_SHRDIR;\n\n const LUA_PATH_DEFAULT = to_luastring(\n LUA_LDIR + \"?.lua;\" + LUA_LDIR + \"?\\\\init.lua;\" +\n LUA_JSDIR + \"?.lua;\" + LUA_JSDIR + \"?\\\\init.lua;\" +\n LUA_SHRDIR + \"?.lua;\" + LUA_SHRDIR + \"?\\\\init.lua;\" +\n \".\\\\?.lua;.\\\\?\\\\init.lua\"\n );\n module.exports.LUA_PATH_DEFAULT = LUA_PATH_DEFAULT;\n\n const LUA_JSPATH_DEFAULT = to_luastring(\n LUA_JSDIR + \"?.js;\" +\n LUA_JSDIR + \"..\\\\share\\\\lua\\\\\" + LUA_VDIR + \"\\\\?.js;\" +\n LUA_JSDIR + \"loadall.js;.\\\\?.js\"\n );\n module.exports.LUA_JSPATH_DEFAULT = LUA_JSPATH_DEFAULT;\n} else {\n const LUA_DIRSEP = \"/\";\n module.exports.LUA_DIRSEP = LUA_DIRSEP;\n\n const LUA_ROOT = \"/usr/local/\";\n module.exports.LUA_ROOT = LUA_ROOT;\n const LUA_ROOT2 = \"/usr/\";\n\n const LUA_LDIR = LUA_ROOT + \"share/lua/\" + LUA_VDIR + \"/\";\n const LUA_LDIR2 = LUA_ROOT2 + \"share/lua/\" + LUA_VDIR + \"/\";\n module.exports.LUA_LDIR = LUA_LDIR;\n\n const LUA_JSDIR = LUA_LDIR;\n module.exports.LUA_JSDIR = LUA_JSDIR;\n const LUA_JSDIR2 = LUA_LDIR2;\n\n const LUA_PATH_DEFAULT = to_luastring(\n LUA_LDIR + \"?.lua;\" + LUA_LDIR + \"?/init.lua;\" +\n LUA_LDIR2 + \"?.lua;\" + LUA_LDIR2 + \"?/init.lua;\" +\n /* LUA_JSDIR(2) excluded as it is equal to LUA_LDIR(2) */\n \"./?.lua;./?/init.lua\"\n );\n module.exports.LUA_PATH_DEFAULT = LUA_PATH_DEFAULT;\n\n const LUA_JSPATH_DEFAULT = to_luastring(\n LUA_JSDIR + \"?.js;\" + LUA_JSDIR + \"loadall.js;\" +\n LUA_JSDIR2 + \"?.js;\" + LUA_JSDIR2 + \"loadall.js;\" +\n \"./?.js\"\n );\n module.exports.LUA_JSPATH_DEFAULT = LUA_JSPATH_DEFAULT;\n}\n\n/*\n@@ LUA_COMPAT_FLOATSTRING makes Lua format integral floats without a\n@@ a float mark ('.0').\n** This macro is not on by default even in compatibility mode,\n** because this is not really an incompatibility.\n*/\nconst LUA_COMPAT_FLOATSTRING = conf.LUA_COMPAT_FLOATSTRING || false;\n\nconst LUA_MAXINTEGER = 2147483647;\nconst LUA_MININTEGER = -2147483648;\n\n/*\n@@ LUAI_MAXSTACK limits the size of the Lua stack.\n** CHANGE it if you need a different limit. This limit is arbitrary;\n** its only purpose is to stop Lua from consuming unlimited stack\n** space (and to reserve some numbers for pseudo-indices).\n*/\nconst LUAI_MAXSTACK = conf.LUAI_MAXSTACK || 1000000;\n\n/*\n@@ LUA_IDSIZE gives the maximum size for the description of the source\n@@ of a function in debug information.\n** CHANGE it if you want a different size.\n*/\nconst LUA_IDSIZE = conf.LUA_IDSIZE || (60-1); /* fengari uses 1 less than lua as we don't embed the null byte */\n\nconst lua_integer2str = function(n) {\n return String(n); /* should match behaviour of LUA_INTEGER_FMT */\n};\n\nconst lua_number2str = function(n) {\n return String(Number(n.toPrecision(14))); /* should match behaviour of LUA_NUMBER_FMT */\n};\n\nconst lua_numbertointeger = function(n) {\n return n >= LUA_MININTEGER && n < -LUA_MININTEGER ? n : false;\n};\n\nconst LUA_INTEGER_FRMLEN = \"\";\nconst LUA_NUMBER_FRMLEN = \"\";\n\nconst LUA_INTEGER_FMT = `%${LUA_INTEGER_FRMLEN}d`;\nconst LUA_NUMBER_FMT = \"%.14g\";\n\nconst lua_getlocaledecpoint = function() {\n /* we hard-code the decimal point to '.' as a user cannot change the\n locale in most JS environments, and in that you can, a multi-byte\n locale is common.\n */\n return 46 /* '.'.charCodeAt(0) */;\n};\n\nconst luai_apicheck = function(l, e) {\n if (!e) throw Error(e);\n};\n\n/*\n@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.\n*/\nconst LUAL_BUFFERSIZE = conf.LUAL_BUFFERSIZE || 8192;\n\n// See: http://croquetweak.blogspot.fr/2014/08/deconstructing-floats-frexp-and-ldexp.html\nconst frexp = function(value) {\n if (value === 0) return [value, 0];\n var data = new DataView(new ArrayBuffer(8));\n data.setFloat64(0, value);\n var bits = (data.getUint32(0) >>> 20) & 0x7FF;\n if (bits === 0) { // denormal\n data.setFloat64(0, value * Math.pow(2, 64)); // exp + 64\n bits = ((data.getUint32(0) >>> 20) & 0x7FF) - 64;\n }\n var exponent = bits - 1022;\n var mantissa = ldexp(value, -exponent);\n return [mantissa, exponent];\n};\n\nconst ldexp = function(mantissa, exponent) {\n var steps = Math.min(3, Math.ceil(Math.abs(exponent) / 1023));\n var result = mantissa;\n for (var i = 0; i < steps; i++)\n result *= Math.pow(2, Math.floor((exponent + i) / steps));\n return result;\n};\n\nmodule.exports.LUAI_MAXSTACK = LUAI_MAXSTACK;\nmodule.exports.LUA_COMPAT_FLOATSTRING = LUA_COMPAT_FLOATSTRING;\nmodule.exports.LUA_IDSIZE = LUA_IDSIZE;\nmodule.exports.LUA_INTEGER_FMT = LUA_INTEGER_FMT;\nmodule.exports.LUA_INTEGER_FRMLEN = LUA_INTEGER_FRMLEN;\nmodule.exports.LUA_MAXINTEGER = LUA_MAXINTEGER;\nmodule.exports.LUA_MININTEGER = LUA_MININTEGER;\nmodule.exports.LUA_NUMBER_FMT = LUA_NUMBER_FMT;\nmodule.exports.LUA_NUMBER_FRMLEN = LUA_NUMBER_FRMLEN;\nmodule.exports.LUAL_BUFFERSIZE = LUAL_BUFFERSIZE;\nmodule.exports.frexp = frexp;\nmodule.exports.ldexp = ldexp;\nmodule.exports.lua_getlocaledecpoint = lua_getlocaledecpoint;\nmodule.exports.lua_integer2str = lua_integer2str;\nmodule.exports.lua_number2str = lua_number2str;\nmodule.exports.lua_numbertointeger = lua_numbertointeger;\nmodule.exports.luai_apicheck = luai_apicheck;\n","\"use strict\";\n\nconst { luai_apicheck } = require(\"./luaconf.js\");\n\nconst lua_assert = function(c) {\n if (!c) throw Error(\"assertion failed\");\n};\nmodule.exports.lua_assert = lua_assert;\n\nmodule.exports.luai_apicheck = luai_apicheck || function(l, e) { return lua_assert(e); };\n\nconst api_check = function(l, e, msg) {\n return luai_apicheck(l, e && msg);\n};\nmodule.exports.api_check = api_check;\n\nconst LUAI_MAXCCALLS = 200;\nmodule.exports.LUAI_MAXCCALLS = LUAI_MAXCCALLS;\n\n/* minimum size for string buffer */\nconst LUA_MINBUFFER = 32;\nmodule.exports.LUA_MINBUFFER = LUA_MINBUFFER;\n\nconst luai_nummod = function(L, a, b) {\n let m = a % b;\n if ((m*b) < 0)\n m += b;\n return m;\n};\nmodule.exports.luai_nummod = luai_nummod;\n\n// If later integers are more than 32bit, LUA_MAXINTEGER will then be != MAX_INT\nconst MAX_INT = 2147483647;\nmodule.exports.MAX_INT = MAX_INT;\nconst MIN_INT = -2147483648;\nmodule.exports.MIN_INT = MIN_INT;\n","/* Fengari specific functions\n *\n * This file includes fengari-specific data or and functionality for users to\n * manipulate fengari's string type.\n * The fields are exposed to the user on the 'fengari' entry point; however to\n * avoid a dependency on defs.js from lauxlib.js they are defined in this file.\n */\n\nconst defs = require(\"./defs.js\");\n\nconst FENGARI_VERSION_MAJOR = \"0\";\nconst FENGARI_VERSION_MINOR = \"1\";\nconst FENGARI_VERSION_NUM = 1;\nconst FENGARI_VERSION_RELEASE = \"4\";\nconst FENGARI_VERSION = \"Fengari \" + FENGARI_VERSION_MAJOR + \".\" + FENGARI_VERSION_MINOR;\nconst FENGARI_RELEASE = FENGARI_VERSION + \".\" + FENGARI_VERSION_RELEASE;\nconst FENGARI_AUTHORS = \"B. Giannangeli, Daurnimator\";\nconst FENGARI_COPYRIGHT = FENGARI_RELEASE + \" Copyright (C) 2017-2018 \" + FENGARI_AUTHORS + \"\\nBased on: \" + defs.LUA_COPYRIGHT;\n\nmodule.exports.FENGARI_AUTHORS = FENGARI_AUTHORS;\nmodule.exports.FENGARI_COPYRIGHT = FENGARI_COPYRIGHT;\nmodule.exports.FENGARI_RELEASE = FENGARI_RELEASE;\nmodule.exports.FENGARI_VERSION = FENGARI_VERSION;\nmodule.exports.FENGARI_VERSION_MAJOR = FENGARI_VERSION_MAJOR;\nmodule.exports.FENGARI_VERSION_MINOR = FENGARI_VERSION_MINOR;\nmodule.exports.FENGARI_VERSION_NUM = FENGARI_VERSION_NUM;\nmodule.exports.FENGARI_VERSION_RELEASE = FENGARI_VERSION_RELEASE;\nmodule.exports.is_luastring = defs.is_luastring;\nmodule.exports.luastring_eq = defs.luastring_eq;\nmodule.exports.luastring_from = defs.luastring_from;\nmodule.exports.luastring_indexOf = defs.luastring_indexOf;\nmodule.exports.luastring_of = defs.luastring_of;\nmodule.exports.to_jsstring = defs.to_jsstring;\nmodule.exports.to_luastring = defs.to_luastring;\nmodule.exports.to_uristring = defs.to_uristring;\nmodule.exports.from_userstring = defs.from_userstring;\n","\"use strict\";\n\nconst {\n LUA_OPADD,\n LUA_OPBAND,\n LUA_OPBNOT,\n LUA_OPBOR,\n LUA_OPBXOR,\n LUA_OPDIV,\n LUA_OPIDIV,\n LUA_OPMOD,\n LUA_OPMUL,\n LUA_OPPOW,\n LUA_OPSHL,\n LUA_OPSHR,\n LUA_OPSUB,\n LUA_OPUNM,\n constant_types: {\n LUA_NUMTAGS,\n LUA_TBOOLEAN,\n LUA_TCCL,\n LUA_TFUNCTION,\n LUA_TLCF,\n LUA_TLCL,\n LUA_TLIGHTUSERDATA,\n LUA_TLNGSTR,\n LUA_TNIL,\n LUA_TNUMBER,\n LUA_TNUMFLT,\n LUA_TNUMINT,\n LUA_TSHRSTR,\n LUA_TSTRING,\n LUA_TTABLE,\n LUA_TTHREAD,\n LUA_TUSERDATA\n },\n from_userstring,\n luastring_indexOf,\n luastring_of,\n to_jsstring,\n to_luastring\n} = require('./defs.js');\nconst {\n lisdigit,\n lisprint,\n lisspace,\n lisxdigit\n} = require('./ljstype.js');\nconst ldebug = require('./ldebug.js');\nconst ldo = require('./ldo.js');\nconst lstate = require('./lstate.js');\nconst {\n luaS_bless,\n luaS_new\n} = require('./lstring.js');\nconst ltable = require('./ltable.js');\nconst {\n LUA_COMPAT_FLOATSTRING,\n ldexp,\n lua_integer2str,\n lua_number2str\n} = require('./luaconf.js');\nconst lvm = require('./lvm.js');\nconst {\n MAX_INT,\n luai_nummod,\n lua_assert\n} = require(\"./llimits.js\");\nconst ltm = require('./ltm.js');\n\nconst LUA_TPROTO = LUA_NUMTAGS;\nconst LUA_TDEADKEY = LUA_NUMTAGS+1;\n\nclass TValue {\n\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n\n /* type tag of a TValue (bits 0-3 for tags + variant bits 4-5) */\n ttype() {\n return this.type & 0x3F;\n }\n\n /* type tag of a TValue with no variants (bits 0-3) */\n ttnov() {\n return this.type & 0x0F;\n }\n\n checktag(t) {\n return this.type === t;\n }\n\n checktype(t) {\n return this.ttnov() === t;\n }\n\n ttisnumber() {\n return this.checktype(LUA_TNUMBER);\n }\n\n ttisfloat() {\n return this.checktag(LUA_TNUMFLT);\n }\n\n ttisinteger() {\n return this.checktag(LUA_TNUMINT);\n }\n\n ttisnil() {\n return this.checktag(LUA_TNIL);\n }\n\n ttisboolean() {\n return this.checktag(LUA_TBOOLEAN);\n }\n\n ttislightuserdata() {\n return this.checktag(LUA_TLIGHTUSERDATA);\n }\n\n ttisstring() {\n return this.checktype(LUA_TSTRING);\n }\n\n ttisshrstring() {\n return this.checktag(LUA_TSHRSTR);\n }\n\n ttislngstring() {\n return this.checktag(LUA_TLNGSTR);\n }\n\n ttistable() {\n return this.checktag(LUA_TTABLE);\n }\n\n ttisfunction() {\n return this.checktype(LUA_TFUNCTION);\n }\n\n ttisclosure() {\n return (this.type & 0x1F) === LUA_TFUNCTION;\n }\n\n ttisCclosure() {\n return this.checktag(LUA_TCCL);\n }\n\n ttisLclosure() {\n return this.checktag(LUA_TLCL);\n }\n\n ttislcf() {\n return this.checktag(LUA_TLCF);\n }\n\n ttisfulluserdata() {\n return this.checktag(LUA_TUSERDATA);\n }\n\n ttisthread() {\n return this.checktag(LUA_TTHREAD);\n }\n\n ttisdeadkey() {\n return this.checktag(LUA_TDEADKEY);\n }\n\n l_isfalse() {\n return this.ttisnil() || (this.ttisboolean() && this.value === false);\n }\n\n setfltvalue(x) {\n this.type = LUA_TNUMFLT;\n this.value = x;\n }\n\n chgfltvalue(x) {\n lua_assert(this.type == LUA_TNUMFLT);\n this.value = x;\n }\n\n setivalue(x) {\n this.type = LUA_TNUMINT;\n this.value = x;\n }\n\n chgivalue(x) {\n lua_assert(this.type == LUA_TNUMINT);\n this.value = x;\n }\n\n setnilvalue() {\n this.type = LUA_TNIL;\n this.value = null;\n }\n\n setfvalue(x) {\n this.type = LUA_TLCF;\n this.value = x;\n }\n\n setpvalue(x) {\n this.type = LUA_TLIGHTUSERDATA;\n this.value = x;\n }\n\n setbvalue(x) {\n this.type = LUA_TBOOLEAN;\n this.value = x;\n }\n\n setsvalue(x) {\n this.type = LUA_TLNGSTR; /* LUA_TSHRSTR? */\n this.value = x;\n }\n\n setuvalue(x) {\n this.type = LUA_TUSERDATA;\n this.value = x;\n }\n\n setthvalue(x) {\n this.type = LUA_TTHREAD;\n this.value = x;\n }\n\n setclLvalue(x) {\n this.type = LUA_TLCL;\n this.value = x;\n }\n\n setclCvalue(x) {\n this.type = LUA_TCCL;\n this.value = x;\n }\n\n sethvalue(x) {\n this.type = LUA_TTABLE;\n this.value = x;\n }\n\n setdeadvalue() {\n this.type = LUA_TDEADKEY;\n this.value = null;\n }\n\n setfrom(tv) { /* in lua C source setobj2t is often used for this */\n this.type = tv.type;\n this.value = tv.value;\n }\n\n tsvalue() {\n lua_assert(this.ttisstring());\n return this.value;\n }\n\n svalue() {\n return this.tsvalue().getstr();\n }\n\n vslen() {\n return this.tsvalue().tsslen();\n }\n\n jsstring(from, to) {\n return to_jsstring(this.svalue(), from, to, true);\n }\n}\n\nconst pushobj2s = function(L, tv) {\n L.stack[L.top++] = new TValue(tv.type, tv.value);\n};\nconst pushsvalue2s = function(L, ts) {\n L.stack[L.top++] = new TValue(LUA_TLNGSTR, ts);\n};\n/* from stack to (same) stack */\nconst setobjs2s = function(L, newidx, oldidx) {\n L.stack[newidx].setfrom(L.stack[oldidx]);\n};\n/* to stack (not from same stack) */\nconst setobj2s = function(L, newidx, oldtv) {\n L.stack[newidx].setfrom(oldtv);\n};\nconst setsvalue2s = function(L, newidx, ts) {\n L.stack[newidx].setsvalue(ts);\n};\n\nconst luaO_nilobject = new TValue(LUA_TNIL, null);\nObject.freeze(luaO_nilobject);\nmodule.exports.luaO_nilobject = luaO_nilobject;\n\nclass LClosure {\n\n constructor(L, n) {\n this.id = L.l_G.id_counter++;\n\n this.p = null;\n this.nupvalues = n;\n this.upvals = new Array(n); /* list of upvalues. initialised in luaF_initupvals */\n }\n\n}\n\nclass CClosure {\n\n constructor(L, f, n) {\n this.id = L.l_G.id_counter++;\n\n this.f = f;\n this.nupvalues = n;\n this.upvalue = new Array(n); /* list of upvalues as TValues */\n while (n--) {\n this.upvalue[n] = new TValue(LUA_TNIL, null);\n }\n }\n\n}\n\nclass Udata {\n\n constructor(L, size) {\n this.id = L.l_G.id_counter++;\n\n this.metatable = null;\n this.uservalue = new TValue(LUA_TNIL, null);\n this.len = size;\n this.data = Object.create(null); // ignores size argument\n }\n\n}\n\n/*\n** Description of a local variable for function prototypes\n** (used for debug information)\n*/\nclass LocVar {\n constructor() {\n this.varname = null;\n this.startpc = NaN; /* first point where variable is active */\n this.endpc = NaN; /* first point where variable is dead */\n }\n}\n\nconst RETS = to_luastring(\"...\");\nconst PRE = to_luastring(\"[string \\\"\");\nconst POS = to_luastring(\"\\\"]\");\n\nconst luaO_chunkid = function(source, bufflen) {\n let l = source.length;\n let out;\n if (source[0] === 61 /* ('=').charCodeAt(0) */) { /* 'literal' source */\n if (l < bufflen) { /* small enough? */\n out = new Uint8Array(l-1);\n out.set(source.subarray(1));\n } else { /* truncate it */\n out = new Uint8Array(bufflen);\n out.set(source.subarray(1, bufflen+1));\n }\n } else if (source[0] === 64 /* ('@').charCodeAt(0) */) { /* file name */\n if (l <= bufflen) { /* small enough? */\n out = new Uint8Array(l-1);\n out.set(source.subarray(1));\n } else { /* add '...' before rest of name */\n out = new Uint8Array(bufflen);\n out.set(RETS);\n bufflen -= RETS.length;\n out.set(source.subarray(l - bufflen), RETS.length);\n }\n } else { /* string; format as [string \"source\"] */\n out = new Uint8Array(bufflen);\n let nli = luastring_indexOf(source, 10 /* ('\\n').charCodeAt(0) */); /* find first new line (if any) */\n out.set(PRE); /* add prefix */\n let out_i = PRE.length;\n bufflen -= PRE.length + RETS.length + POS.length; /* save space for prefix+suffix */\n if (l < bufflen && nli === -1) { /* small one-line source? */\n out.set(source, out_i); /* keep it */\n out_i += source.length;\n } else {\n if (nli !== -1) l = nli; /* stop at first newline */\n if (l > bufflen) l = bufflen;\n out.set(source.subarray(0, l), out_i);\n out_i += l;\n out.set(RETS, out_i);\n out_i += RETS.length;\n }\n out.set(POS, out_i);\n out_i += POS.length;\n out = out.subarray(0, out_i);\n }\n return out;\n};\n\nconst luaO_hexavalue = function(c) {\n if (lisdigit(c)) return c - 48;\n else return (c & 0xdf) - 55;\n};\n\nconst UTF8BUFFSZ = 8;\n\nconst luaO_utf8esc = function(buff, x) {\n let n = 1; /* number of bytes put in buffer (backwards) */\n lua_assert(x <= 0x10FFFF);\n if (x < 0x80) /* ascii? */\n buff[UTF8BUFFSZ - 1] = x;\n else { /* need continuation bytes */\n let mfb = 0x3f; /* maximum that fits in first byte */\n do {\n buff[UTF8BUFFSZ - (n++)] = 0x80 | (x & 0x3f);\n x >>= 6; /* remove added bits */\n mfb >>= 1; /* now there is one less bit available in first byte */\n } while (x > mfb); /* still needs continuation byte? */\n buff[UTF8BUFFSZ - n] = (~mfb << 1) | x; /* add first byte */\n }\n return n;\n};\n\n/* maximum number of significant digits to read (to avoid overflows\n even with single floats) */\nconst MAXSIGDIG = 30;\n\n/*\n** convert an hexadecimal numeric string to a number, following\n** C99 specification for 'strtod'\n*/\nconst lua_strx2number = function(s) {\n let i = 0;\n let r = 0.0; /* result (accumulator) */\n let sigdig = 0; /* number of significant digits */\n let nosigdig = 0; /* number of non-significant digits */\n let e = 0; /* exponent correction */\n let neg; /* 1 if number is negative */\n let hasdot = false; /* true after seen a dot */\n while (lisspace(s[i])) i++; /* skip initial spaces */\n if ((neg = (s[i] === 45 /* ('-').charCodeAt(0) */))) i++; /* check signal */\n else if (s[i] === 43 /* ('+').charCodeAt(0) */) i++;\n if (!(s[i] === 48 /* ('0').charCodeAt(0) */ && (s[i+1] === 120 /* ('x').charCodeAt(0) */ || s[i+1] === 88 /* ('X').charCodeAt(0) */))) /* check '0x' */\n return null; /* invalid format (no '0x') */\n for (i += 2; ; i++) { /* skip '0x' and read numeral */\n if (s[i] === 46 /* ('.').charCodeAt(0) i.e. dot/lua_getlocaledecpoint(); */) {\n if (hasdot) break; /* second dot? stop loop */\n else hasdot = true;\n } else if (lisxdigit(s[i])) {\n if (sigdig === 0 && s[i] === 48 /* ('0').charCodeAt(0) */) /* non-significant digit (zero)? */\n nosigdig++;\n else if (++sigdig <= MAXSIGDIG) /* can read it without overflow? */\n r = (r * 16) + luaO_hexavalue(s[i]);\n else e++; /* too many digits; ignore, but still count for exponent */\n if (hasdot) e--; /* decimal digit? correct exponent */\n } else break; /* neither a dot nor a digit */\n }\n\n if (nosigdig + sigdig === 0) /* no digits? */\n return null; /* invalid format */\n e *= 4; /* each digit multiplies/divides value by 2^4 */\n if (s[i] === 112 /* ('p').charCodeAt(0) */ || s[i] === 80 /* ('P').charCodeAt(0) */) { /* exponent part? */\n let exp1 = 0; /* exponent value */\n let neg1; /* exponent signal */\n i++; /* skip 'p' */\n if ((neg1 = (s[i] === 45 /* ('-').charCodeAt(0) */))) i++; /* signal */\n else if (s[i] === 43 /* ('+').charCodeAt(0) */) i++;\n if (!lisdigit(s[i]))\n return null; /* invalid; must have at least one digit */\n while (lisdigit(s[i])) /* read exponent */\n exp1 = exp1 * 10 + s[i++] - 48 /* ('0').charCodeAt(0) */;\n if (neg1) exp1 = -exp1;\n e += exp1;\n }\n if (neg) r = -r;\n return {\n n: ldexp(r, e),\n i: i\n };\n};\n\nconst lua_str2number = function(s) {\n try {\n s = to_jsstring(s);\n } catch (e) {\n return null;\n }\n /* use a regex to validate number and also to get length\n parseFloat ignores trailing junk */\n let r = /^[\\t\\v\\f \\n\\r]*[+-]?(?:[0-9]+\\.?[0-9]*|\\.[0-9]*)(?:[eE][+-]?[0-9]+)?/.exec(s);\n if (!r)\n return null;\n let flt = parseFloat(r[0]);\n return !isNaN(flt) ? { n: flt, i: r[0].length } : null;\n};\n\nconst l_str2dloc = function(s, mode) {\n let result = mode === 'x' ? lua_strx2number(s) : lua_str2number(s); /* try to convert */\n if (result === null) return null;\n while (lisspace(s[result.i])) result.i++; /* skip trailing spaces */\n return (result.i === s.length || s[result.i] === 0) ? result : null; /* OK if no trailing characters */\n};\n\nconst SIGILS = [\n 46 /* (\".\").charCodeAt(0) */,\n 120 /* (\"x\").charCodeAt(0) */,\n 88 /* (\"X\").charCodeAt(0) */,\n 110 /* (\"n\").charCodeAt(0) */,\n 78 /* (\"N\").charCodeAt(0) */\n];\nconst modes = {\n [ 46]: \".\",\n [120]: \"x\",\n [ 88]: \"x\",\n [110]: \"n\",\n [ 78]: \"n\"\n};\nconst l_str2d = function(s) {\n let l = s.length;\n let pmode = 0;\n for (let i=0; i<l; i++) {\n let v = s[i];\n if (SIGILS.indexOf(v) !== -1) {\n pmode = v;\n break;\n }\n }\n let mode = modes[pmode];\n if (mode === 'n') /* reject 'inf' and 'nan' */\n return null;\n let end = l_str2dloc(s, mode); /* try to convert */\n // if (end === null) { /* failed? may be a different locale */\n // throw new Error(\"Locale not available to handle number\"); // TODO\n // }\n return end;\n};\n\nconst MAXBY10 = Math.floor(MAX_INT / 10);\nconst MAXLASTD = MAX_INT % 10;\n\nconst l_str2int = function(s) {\n let i = 0;\n let a = 0;\n let empty = true;\n let neg;\n\n while (lisspace(s[i])) i++; /* skip initial spaces */\n if ((neg = (s[i] === 45 /* ('-').charCodeAt(0) */))) i++;\n else if (s[i] === 43 /* ('+').charCodeAt(0) */) i++;\n if (s[i] === 48 /* ('0').charCodeAt(0) */ && (s[i+1] === 120 /* ('x').charCodeAt(0) */ || s[i+1] === 88 /* ('X').charCodeAt(0) */)) { /* hex? */\n i += 2; /* skip '0x' */\n for (; i < s.length && lisxdigit(s[i]); i++) {\n a = (a * 16 + luaO_hexavalue(s[i]))|0;\n empty = false;\n }\n } else { /* decimal */\n for (; i < s.length && lisdigit(s[i]); i++) {\n let d = s[i] - 48 /* ('0').charCodeAt(0) */;\n if (a >= MAXBY10 && (a > MAXBY10 || d > MAXLASTD + neg)) /* overflow? */\n return null; /* do not accept it (as integer) */\n a = (a * 10 + d)|0;\n empty = false;\n }\n }\n while (i < s.length && lisspace(s[i])) i++; /* skip trailing spaces */\n if (empty || (i !== s.length && s[i] !== 0)) return null; /* something wrong in the numeral */\n else {\n return {\n n: (neg ? -a : a)|0,\n i: i\n };\n }\n};\n\nconst luaO_str2num = function(s, o) {\n let s2i = l_str2int(s);\n if (s2i !== null) { /* try as an integer */\n o.setivalue(s2i.n);\n return s2i.i+1;\n } else { /* else try as a float */\n s2i = l_str2d(s);\n if (s2i !== null) {\n o.setfltvalue(s2i.n);\n return s2i.i+1;\n } else\n return 0; /* conversion failed */\n }\n};\n\nconst luaO_tostring = function(L, obj) {\n let buff;\n if (obj.ttisinteger())\n buff = to_luastring(lua_integer2str(obj.value));\n else {\n let str = lua_number2str(obj.value);\n if (!LUA_COMPAT_FLOATSTRING && /^[-0123456789]+$/.test(str)) { /* looks like an int? */\n str += '.0'; /* adds '.0' to result: lua_getlocaledecpoint removed as optimisation */\n }\n buff = to_luastring(str);\n }\n obj.setsvalue(luaS_bless(L, buff));\n};\n\nconst pushstr = function(L, str) {\n ldo.luaD_inctop(L);\n setsvalue2s(L, L.top-1, luaS_new(L, str));\n};\n\nconst luaO_pushvfstring = function(L, fmt, argp) {\n let n = 0;\n let i = 0;\n let a = 0;\n let e;\n for (;;) {\n e = luastring_indexOf(fmt, 37 /* ('%').charCodeAt(0) */, i);\n if (e == -1) break;\n pushstr(L, fmt.subarray(i, e));\n switch(fmt[e+1]) {\n case 115 /* ('s').charCodeAt(0) */: {\n let s = argp[a++];\n if (s === null) s = to_luastring(\"(null)\", true);\n else {\n s = from_userstring(s);\n /* respect null terminator */\n let i = luastring_indexOf(s, 0);\n if (i !== -1)\n s = s.subarray(0, i);\n }\n pushstr(L, s);\n break;\n }\n case 99 /* ('c').charCodeAt(0) */: {\n let buff = argp[a++];\n if (lisprint(buff))\n pushstr(L, luastring_of(buff));\n else\n luaO_pushfstring(L, to_luastring(\"<\\\\%d>\", true), buff);\n break;\n }\n case 100 /* ('d').charCodeAt(0) */:\n case 73 /* ('I').charCodeAt(0) */:\n ldo.luaD_inctop(L);\n L.stack[L.top-1].setivalue(argp[a++]);\n luaO_tostring(L, L.stack[L.top-1]);\n break;\n case 102 /* ('f').charCodeAt(0) */:\n ldo.luaD_inctop(L);\n L.stack[L.top-1].setfltvalue(argp[a++]);\n luaO_tostring(L, L.stack[L.top-1]);\n break;\n case 112 /* ('p').charCodeAt(0) */: {\n let v = argp[a++];\n if (v instanceof lstate.lua_State ||\n v instanceof ltable.Table ||\n v instanceof Udata ||\n v instanceof LClosure ||\n v instanceof CClosure) {\n pushstr(L, to_luastring(\"0x\"+v.id.toString(16)));\n } else {\n switch(typeof v) {\n case \"undefined\":\n pushstr(L, to_luastring(\"undefined\"));\n break;\n case \"number\": /* before check object as null is an object */\n pushstr(L, to_luastring(\"Number(\"+v+\")\"));\n break;\n case \"string\": /* before check object as null is an object */\n pushstr(L, to_luastring(\"String(\"+JSON.stringify(v)+\")\"));\n break;\n case \"boolean\": /* before check object as null is an object */\n pushstr(L, to_luastring(v?\"Boolean(true)\":\"Boolean(false)\"));\n break;\n case \"object\":\n if (v === null) { /* null is special */\n pushstr(L, to_luastring(\"null\"));\n break;\n }\n /* fall through */\n case \"function\": {\n let id = L.l_G.ids.get(v);\n if (!id) {\n id = L.l_G.id_counter++;\n L.l_G.ids.set(v, id);\n }\n pushstr(L, to_luastring(\"0x\"+id.toString(16)));\n break;\n }\n default:\n /* user provided object. no id available */\n pushstr(L, to_luastring(\"<id NYI>\"));\n }\n }\n break;\n }\n case 85 /* ('U').charCodeAt(0) */: {\n let buff = new Uint8Array(UTF8BUFFSZ);\n let l = luaO_utf8esc(buff, argp[a++]);\n pushstr(L, buff.subarray(UTF8BUFFSZ - l));\n break;\n }\n case 37 /* ('%').charCodeAt(0) */:\n pushstr(L, to_luastring(\"%\", true));\n break;\n default:\n ldebug.luaG_runerror(L, to_luastring(\"invalid option '%%%c' to 'lua_pushfstring'\"), fmt[e + 1]);\n }\n n += 2;\n i = e + 2;\n }\n ldo.luaD_checkstack(L, 1);\n pushstr(L, fmt.subarray(i));\n if (n > 0) lvm.luaV_concat(L, n+1);\n return L.stack[L.top-1].svalue();\n};\n\nconst luaO_pushfstring = function(L, fmt, ...argp) {\n return luaO_pushvfstring(L, fmt, argp);\n};\n\n\n/*\n** converts an integer to a \"floating point byte\", represented as\n** (eeeeexxx), where the real value is (1xxx) * 2^(eeeee - 1) if\n** eeeee !== 0 and (xxx) otherwise.\n*/\nconst luaO_int2fb = function(x) {\n let e = 0; /* exponent */\n if (x < 8) return x;\n while (x >= (8 << 4)) { /* coarse steps */\n x = (x + 0xf) >> 4; /* x = ceil(x / 16) */\n e += 4;\n }\n while (x >= (8 << 1)) { /* fine steps */\n x = (x + 1) >> 1; /* x = ceil(x / 2) */\n e++;\n }\n return ((e+1) << 3) | (x - 8);\n};\n\nconst intarith = function(L, op, v1, v2) {\n switch (op) {\n case LUA_OPADD: return (v1 + v2)|0;\n case LUA_OPSUB: return (v1 - v2)|0;\n case LUA_OPMUL: return lvm.luaV_imul(v1, v2);\n case LUA_OPMOD: return lvm.luaV_mod(L, v1, v2);\n case LUA_OPIDIV: return lvm.luaV_div(L, v1, v2);\n case LUA_OPBAND: return (v1 & v2);\n case LUA_OPBOR: return (v1 | v2);\n case LUA_OPBXOR: return (v1 ^ v2);\n case LUA_OPSHL: return lvm.luaV_shiftl(v1, v2);\n case LUA_OPSHR: return lvm.luaV_shiftl(v1, -v2);\n case LUA_OPUNM: return (0 - v1)|0;\n case LUA_OPBNOT: return (~0 ^ v1);\n default: lua_assert(0);\n }\n};\n\n\nconst numarith = function(L, op, v1, v2) {\n switch (op) {\n case LUA_OPADD: return v1 + v2;\n case LUA_OPSUB: return v1 - v2;\n case LUA_OPMUL: return v1 * v2;\n case LUA_OPDIV: return v1 / v2;\n case LUA_OPPOW: return Math.pow(v1, v2);\n case LUA_OPIDIV: return Math.floor(v1 / v2);\n case LUA_OPUNM: return -v1;\n case LUA_OPMOD: return luai_nummod(L, v1, v2);\n default: lua_assert(0);\n }\n};\n\nconst luaO_arith = function(L, op, p1, p2, p3) {\n let res = (typeof p3 === \"number\") ? L.stack[p3] : p3; /* FIXME */\n\n switch (op) {\n case LUA_OPBAND: case LUA_OPBOR: case LUA_OPBXOR:\n case LUA_OPSHL: case LUA_OPSHR:\n case LUA_OPBNOT: { /* operate only on integers */\n let i1, i2;\n if ((i1 = lvm.tointeger(p1)) !== false && (i2 = lvm.tointeger(p2)) !== false) {\n res.setivalue(intarith(L, op, i1, i2));\n return;\n }\n else break; /* go to the end */\n }\n case LUA_OPDIV: case LUA_OPPOW: { /* operate only on floats */\n let n1, n2;\n if ((n1 = lvm.tonumber(p1)) !== false && (n2 = lvm.tonumber(p2)) !== false) {\n res.setfltvalue(numarith(L, op, n1, n2));\n return;\n }\n else break; /* go to the end */\n }\n default: { /* other operations */\n let n1, n2;\n if (p1.ttisinteger() && p2.ttisinteger()) {\n res.setivalue(intarith(L, op, p1.value, p2.value));\n return;\n }\n else if ((n1 = lvm.tonumber(p1)) !== false && (n2 = lvm.tonumber(p2)) !== false) {\n res.setfltvalue(numarith(L, op, n1, n2));\n return;\n }\n else break; /* go to the end */\n }\n }\n /* could not perform raw operation; try metamethod */\n lua_assert(L !== null); /* should not fail when folding (compile time) */\n ltm.luaT_trybinTM(L, p1, p2, p3, (op - LUA_OPADD) + ltm.TMS.TM_ADD);\n};\n\n\nmodule.exports.CClosure = CClosure;\nmodule.exports.LClosure = LClosure;\nmodule.exports.LUA_TDEADKEY = LUA_TDEADKEY;\nmodule.exports.LUA_TPROTO = LUA_TPROTO;\nmodule.exports.LocVar = LocVar;\nmodule.exports.TValue = TValue;\nmodule.exports.Udata = Udata;\nmodule.exports.UTF8BUFFSZ = UTF8BUFFSZ;\nmodule.exports.luaO_arith = luaO_arith;\nmodule.exports.luaO_chunkid = luaO_chunkid;\nmodule.exports.luaO_hexavalue = luaO_hexavalue;\nmodule.exports.luaO_int2fb = luaO_int2fb;\nmodule.exports.luaO_pushfstring = luaO_pushfstring;\nmodule.exports.luaO_pushvfstring = luaO_pushvfstring;\nmodule.exports.luaO_str2num = luaO_str2num;\nmodule.exports.luaO_tostring = luaO_tostring;\nmodule.exports.luaO_utf8esc = luaO_utf8esc;\nmodule.exports.numarith = numarith;\nmodule.exports.pushobj2s = pushobj2s;\nmodule.exports.pushsvalue2s = pushsvalue2s;\nmodule.exports.setobjs2s = setobjs2s;\nmodule.exports.setobj2s = setobj2s;\nmodule.exports.setsvalue2s = setsvalue2s;\n","\"use strict\";\n\nconst {\n LUAL_BUFFERSIZE\n} = require('./luaconf.js');\nconst {\n LUA_ERRERR,\n LUA_MULTRET,\n LUA_REGISTRYINDEX,\n LUA_SIGNATURE,\n LUA_TBOOLEAN,\n LUA_TLIGHTUSERDATA,\n LUA_TNIL,\n LUA_TNONE,\n LUA_TNUMBER,\n LUA_TSTRING,\n LUA_TTABLE,\n LUA_VERSION_NUM,\n lua_Debug,\n lua_absindex,\n lua_atpanic,\n lua_call,\n lua_checkstack,\n lua_concat,\n lua_copy,\n lua_createtable,\n lua_error,\n lua_getfield,\n lua_getinfo,\n lua_getmetatable,\n lua_getstack,\n lua_gettop,\n lua_insert,\n lua_isinteger,\n lua_isnil,\n lua_isnumber,\n lua_isstring,\n lua_istable,\n lua_len,\n lua_load,\n lua_newstate,\n lua_newtable,\n lua_next,\n lua_pcall,\n lua_pop,\n lua_pushboolean,\n lua_pushcclosure,\n lua_pushcfunction,\n lua_pushfstring,\n lua_pushinteger,\n lua_pushliteral,\n lua_pushlstring,\n lua_pushnil,\n lua_pushstring,\n lua_pushvalue,\n lua_pushvfstring,\n lua_rawequal,\n lua_rawget,\n lua_rawgeti,\n lua_rawlen,\n lua_rawseti,\n lua_remove,\n lua_setfield,\n lua_setglobal,\n lua_setmetatable,\n lua_settop,\n lua_toboolean,\n lua_tointeger,\n lua_tointegerx,\n lua_tojsstring,\n lua_tolstring,\n lua_tonumber,\n lua_tonumberx,\n lua_topointer,\n lua_tostring,\n lua_touserdata,\n lua_type,\n lua_typename,\n lua_version\n} = require('./lua.js');\nconst {\n from_userstring,\n luastring_eq,\n to_luastring,\n to_uristring\n} = require(\"./fengaricore.js\");\n\n/* extra error code for 'luaL_loadfilex' */\nconst LUA_ERRFILE = LUA_ERRERR+1;\n\n/* key, in the registry, for table of loaded modules */\nconst LUA_LOADED_TABLE = to_luastring(\"_LOADED\");\n\n/* key, in the registry, for table of preloaded loaders */\nconst LUA_PRELOAD_TABLE = to_luastring(\"_PRELOAD\");\n\nconst LUA_FILEHANDLE = to_luastring(\"FILE*\");\n\nconst LUAL_NUMSIZES = 4*16 + 8;\n\nconst __name = to_luastring(\"__name\");\nconst __tostring = to_luastring(\"__tostring\");\n\nconst empty = new Uint8Array(0);\n\nclass luaL_Buffer {\n constructor() {\n this.L = null;\n this.b = empty;\n this.n = 0;\n }\n}\n\nconst LEVELS1 = 10; /* size of the first part of the stack */\nconst LEVELS2 = 11; /* size of the second part of the stack */\n\n/*\n** search for 'objidx' in table at index -1.\n** return 1 + string at top if find a good name.\n*/\nconst findfield = function(L, objidx, level) {\n if (level === 0 || !lua_istable(L, -1))\n return 0; /* not found */\n\n lua_pushnil(L); /* start 'next' loop */\n\n while (lua_next(L, -2)) { /* for each pair in table */\n if (lua_type(L, -2) === LUA_TSTRING) { /* ignore non-string keys */\n if (lua_rawequal(L, objidx, -1)) { /* found object? */\n lua_pop(L, 1); /* remove value (but keep name) */\n return 1;\n } else if (findfield(L, objidx, level - 1)) { /* try recursively */\n lua_remove(L, -2); /* remove table (but keep name) */\n lua_pushliteral(L, \".\");\n lua_insert(L, -2); /* place '.' between the two names */\n lua_concat(L, 3);\n return 1;\n }\n }\n lua_pop(L, 1); /* remove value */\n }\n\n return 0; /* not found */\n};\n\n/*\n** Search for a name for a function in all loaded modules\n*/\nconst pushglobalfuncname = function(L, ar) {\n let top = lua_gettop(L);\n lua_getinfo(L, to_luastring(\"f\"), ar); /* push function */\n lua_getfield(L, LUA_REGISTRYINDEX, LUA_LOADED_TABLE);\n if (findfield(L, top + 1, 2)) {\n let name = lua_tostring(L, -1);\n if (name[0] === 95 /* '_'.charCodeAt(0) */ &&\n name[1] === 71 /* 'G'.charCodeAt(0) */ &&\n name[2] === 46 /* '.'.charCodeAt(0) */\n ) { /* name start with '_G.'? */\n lua_pushstring(L, name.subarray(3)); /* push name without prefix */\n lua_remove(L, -2); /* remove original name */\n }\n lua_copy(L, -1, top + 1); /* move name to proper place */\n lua_pop(L, 2); /* remove pushed values */\n return 1;\n } else {\n lua_settop(L, top); /* remove function and global table */\n return 0;\n }\n};\n\nconst pushfuncname = function(L, ar) {\n if (pushglobalfuncname(L, ar)) { /* try first a global name */\n lua_pushfstring(L, to_luastring(\"function '%s'\"), lua_tostring(L, -1));\n lua_remove(L, -2); /* remove name */\n }\n else if (ar.namewhat.length !== 0) /* is there a name from code? */\n lua_pushfstring(L, to_luastring(\"%s '%s'\"), ar.namewhat, ar.name); /* use it */\n else if (ar.what && ar.what[0] === 109 /* 'm'.charCodeAt(0) */) /* main? */\n lua_pushliteral(L, \"main chunk\");\n else if (ar.what && ar.what[0] === 76 /* 'L'.charCodeAt(0) */) /* for Lua functions, use <file:line> */\n lua_pushfstring(L, to_luastring(\"function <%s:%d>\"), ar.short_src, ar.linedefined);\n else /* nothing left... */\n lua_pushliteral(L, \"?\");\n};\n\nconst lastlevel = function(L) {\n let ar = new lua_Debug();\n let li = 1;\n let le = 1;\n /* find an upper bound */\n while (lua_getstack(L, le, ar)) { li = le; le *= 2; }\n /* do a binary search */\n while (li < le) {\n let m = Math.floor((li + le)/2);\n if (lua_getstack(L, m, ar)) li = m + 1;\n else le = m;\n }\n return le - 1;\n};\n\nconst luaL_traceback = function(L, L1, msg, level) {\n let ar = new lua_Debug();\n let top = lua_gettop(L);\n let last = lastlevel(L1);\n let n1 = last - level > LEVELS1 + LEVELS2 ? LEVELS1 : -1;\n if (msg)\n lua_pushfstring(L, to_luastring(\"%s\\n\"), msg);\n luaL_checkstack(L, 10, null);\n lua_pushliteral(L, \"stack traceback:\");\n while (lua_getstack(L1, level++, ar)) {\n if (n1-- === 0) { /* too many levels? */\n lua_pushliteral(L, \"\\n\\t...\"); /* add a '...' */\n level = last - LEVELS2 + 1; /* and skip to last ones */\n } else {\n lua_getinfo(L1, to_luastring(\"Slnt\", true), ar);\n lua_pushfstring(L, to_luastring(\"\\n\\t%s:\"), ar.short_src);\n if (ar.currentline > 0)\n lua_pushliteral(L, `${ar.currentline}:`);\n lua_pushliteral(L, \" in \");\n pushfuncname(L, ar);\n if (ar.istailcall)\n lua_pushliteral(L, \"\\n\\t(...tail calls..)\");\n lua_concat(L, lua_gettop(L) - top);\n }\n }\n lua_concat(L, lua_gettop(L) - top);\n};\n\nconst panic = function(L) {\n let msg = \"PANIC: unprotected error in call to Lua API (\" + lua_tojsstring(L, -1) + \")\";\n throw new Error(msg);\n};\n\nconst luaL_argerror = function(L, arg, extramsg) {\n let ar = new lua_Debug();\n\n if (!lua_getstack(L, 0, ar)) /* no stack frame? */\n return luaL_error(L, to_luastring(\"bad argument #%d (%s)\"), arg, extramsg);\n\n lua_getinfo(L, to_luastring(\"n\"), ar);\n\n if (luastring_eq(ar.namewhat, to_luastring(\"method\"))) {\n arg--; /* do not count 'self' */\n if (arg === 0) /* error is in the self argument itself? */\n return luaL_error(L, to_luastring(\"calling '%s' on bad self (%s)\"), ar.name, extramsg);\n }\n\n if (ar.name === null)\n ar.name = pushglobalfuncname(L, ar) ? lua_tostring(L, -1) : to_luastring(\"?\");\n\n return luaL_error(L, to_luastring(\"bad argument #%d to '%s' (%s)\"), arg, ar.name, extramsg);\n};\n\nconst typeerror = function(L, arg, tname) {\n let typearg;\n if (luaL_getmetafield(L, arg, __name) === LUA_TSTRING)\n typearg = lua_tostring(L, -1);\n else if (lua_type(L, arg) === LUA_TLIGHTUSERDATA)\n typearg = to_luastring(\"light userdata\", true);\n else\n typearg = luaL_typename(L, arg);\n\n let msg = lua_pushfstring(L, to_luastring(\"%s expected, got %s\"), tname, typearg);\n return luaL_argerror(L, arg, msg);\n};\n\nconst luaL_where = function(L, level) {\n let ar = new lua_Debug();\n if (lua_getstack(L, level, ar)) {\n lua_getinfo(L, to_luastring(\"Sl\", true), ar);\n if (ar.currentline > 0) {\n lua_pushfstring(L, to_luastring(\"%s:%d: \"), ar.short_src, ar.currentline);\n return;\n }\n }\n lua_pushstring(L, to_luastring(\"\"));\n};\n\nconst luaL_error = function(L, fmt, ...argp) {\n luaL_where(L, 1);\n lua_pushvfstring(L, fmt, argp);\n lua_concat(L, 2);\n return lua_error(L);\n};\n\n/* Unlike normal lua, we pass in an error object */\nconst luaL_fileresult = function(L, stat, fname, e) {\n if (stat) {\n lua_pushboolean(L, 1);\n return 1;\n } else {\n lua_pushnil(L);\n let message, errno;\n if (e) {\n message = e.message;\n errno = -e.errno;\n } else {\n message = \"Success\"; /* what strerror(0) returns */\n errno = 0;\n }\n if (fname)\n lua_pushfstring(L, to_luastring(\"%s: %s\"), fname, to_luastring(message));\n else\n lua_pushstring(L, to_luastring(message));\n lua_pushinteger(L, errno);\n return 3;\n }\n};\n\n/* Unlike normal lua, we pass in an error object */\nconst luaL_execresult = function(L, e) {\n let what, stat;\n if (e === null) {\n lua_pushboolean(L, 1);\n lua_pushliteral(L, \"exit\");\n lua_pushinteger(L, 0);\n return 3;\n } else if (e.status) {\n what = \"exit\";\n stat = e.status;\n } else if (e.signal) {\n what = \"signal\";\n stat = e.signal;\n } else {\n /* XXX: node seems to have e.errno as a string instead of a number */\n return luaL_fileresult(L, 0, null, e);\n }\n lua_pushnil(L);\n lua_pushliteral(L, what);\n lua_pushinteger(L, stat);\n return 3;\n};\n\nconst luaL_getmetatable = function(L, n) {\n return lua_getfield(L, LUA_REGISTRYINDEX, n);\n};\n\nconst luaL_newmetatable = function(L, tname) {\n if (luaL_getmetatable(L, tname) !== LUA_TNIL) /* name already in use? */\n return 0; /* leave previous value on top, but return 0 */\n lua_pop(L, 1);\n lua_createtable(L, 0, 2); /* create metatable */\n lua_pushstring(L, tname);\n lua_setfield(L, -2, __name); /* metatable.__name = tname */\n lua_pushvalue(L, -1);\n lua_setfield(L, LUA_REGISTRYINDEX, tname); /* registry.name = metatable */\n return 1;\n\n};\n\nconst luaL_setmetatable = function(L, tname) {\n luaL_getmetatable(L, tname);\n lua_setmetatable(L, -2);\n};\n\nconst luaL_testudata = function(L, ud, tname) {\n let p = lua_touserdata(L, ud);\n if (p !== null) { /* value is a userdata? */\n if (lua_getmetatable(L, ud)) { /* does it have a metatable? */\n luaL_getmetatable(L, tname); /* get correct metatable */\n if (!lua_rawequal(L, -1, -2)) /* not the same? */\n p = null; /* value is a userdata with wrong metatable */\n lua_pop(L, 2); /* remove both metatables */\n return p;\n }\n }\n return null; /* value is not a userdata with a metatable */\n};\n\nconst luaL_checkudata = function(L, ud, tname) {\n let p = luaL_testudata(L, ud, tname);\n if (p === null) typeerror(L, ud, tname);\n return p;\n};\n\nconst luaL_checkoption = function(L, arg, def, lst) {\n let name = def !== null ? luaL_optstring(L, arg, def) : luaL_checkstring(L, arg);\n for (let i = 0; lst[i]; i++)\n if (luastring_eq(lst[i], name))\n return i;\n return luaL_argerror(L, arg, lua_pushfstring(L, to_luastring(\"invalid option '%s'\"), name));\n};\n\nconst tag_error = function(L, arg, tag) {\n typeerror(L, arg, lua_typename(L, tag));\n};\n\nconst luaL_newstate = function() {\n let L = lua_newstate();\n if (L) lua_atpanic(L, panic);\n return L;\n};\n\n\nconst luaL_typename = function(L, i) {\n return lua_typename(L, lua_type(L, i));\n};\n\nconst luaL_argcheck = function(L, cond, arg, extramsg) {\n if (!cond) luaL_argerror(L, arg, extramsg);\n};\n\nconst luaL_checkany = function(L, arg) {\n if (lua_type(L, arg) === LUA_TNONE)\n luaL_argerror(L, arg, to_luastring(\"value expected\", true));\n};\n\nconst luaL_checktype = function(L, arg, t) {\n if (lua_type(L, arg) !== t)\n tag_error(L, arg, t);\n};\n\nconst luaL_checklstring = function(L, arg) {\n let s = lua_tolstring(L, arg);\n if (s === null || s === undefined) tag_error(L, arg, LUA_TSTRING);\n return s;\n};\n\nconst luaL_checkstring = luaL_checklstring;\n\nconst luaL_optlstring = function(L, arg, def) {\n if (lua_type(L, arg) <= 0) {\n return def === null ? null : from_userstring(def);\n } else return luaL_checklstring(L, arg);\n};\n\nconst luaL_optstring = luaL_optlstring;\n\nconst interror = function(L, arg) {\n if (lua_isnumber(L, arg))\n luaL_argerror(L, arg, to_luastring(\"number has no integer representation\", true));\n else\n tag_error(L, arg, LUA_TNUMBER);\n};\n\nconst luaL_checknumber = function(L, arg) {\n let d = lua_tonumberx(L, arg);\n if (d === false)\n tag_error(L, arg, LUA_TNUMBER);\n return d;\n};\n\nconst luaL_optnumber = function(L, arg, def) {\n return luaL_opt(L, luaL_checknumber, arg, def);\n};\n\nconst luaL_checkinteger = function(L, arg) {\n let d = lua_tointegerx(L, arg);\n if (d === false)\n interror(L, arg);\n return d;\n};\n\nconst luaL_optinteger = function(L, arg, def) {\n return luaL_opt(L, luaL_checkinteger, arg, def);\n};\n\nconst luaL_prepbuffsize = function(B, sz) {\n let newend = B.n + sz;\n if (B.b.length < newend) {\n let newsize = Math.max(B.b.length * 2, newend); /* double buffer size */\n let newbuff = new Uint8Array(newsize); /* create larger buffer */\n newbuff.set(B.b); /* copy original content */\n B.b = newbuff;\n }\n return B.b.subarray(B.n, newend);\n};\n\nconst luaL_buffinit = function(L, B) {\n B.L = L;\n B.b = empty;\n};\n\nconst luaL_buffinitsize = function(L, B, sz) {\n luaL_buffinit(L, B);\n return luaL_prepbuffsize(B, sz);\n};\n\nconst luaL_prepbuffer = function(B) {\n return luaL_prepbuffsize(B, LUAL_BUFFERSIZE);\n};\n\nconst luaL_addlstring = function(B, s, l) {\n if (l > 0) {\n s = from_userstring(s);\n let b = luaL_prepbuffsize(B, l);\n b.set(s.subarray(0, l));\n luaL_addsize(B, l);\n }\n};\n\nconst luaL_addstring = function(B, s) {\n s = from_userstring(s);\n luaL_addlstring(B, s, s.length);\n};\n\nconst luaL_pushresult = function(B) {\n lua_pushlstring(B.L, B.b, B.n);\n /* delete old buffer */\n B.n = 0;\n B.b = empty;\n};\n\nconst luaL_addchar = function(B, c) {\n luaL_prepbuffsize(B, 1);\n B.b[B.n++] = c;\n};\n\nconst luaL_addsize = function(B, s) {\n B.n += s;\n};\n\nconst luaL_pushresultsize = function(B, sz) {\n luaL_addsize(B, sz);\n luaL_pushresult(B);\n};\n\nconst luaL_addvalue = function(B) {\n let L = B.L;\n let s = lua_tostring(L, -1);\n luaL_addlstring(B, s, s.length);\n lua_pop(L, 1); /* remove value */\n};\n\nconst luaL_opt = function(L, f, n, d) {\n return lua_type(L, n) <= 0 ? d : f(L, n);\n};\n\nconst getS = function(L, ud) {\n let s = ud.string;\n ud.string = null;\n return s;\n};\n\nconst luaL_loadbufferx = function(L, buff, size, name, mode) {\n return lua_load(L, getS, {string: buff}, name, mode);\n};\n\nconst luaL_loadbuffer = function(L, s, sz, n) {\n return luaL_loadbufferx(L, s, sz, n, null);\n};\n\nconst luaL_loadstring = function(L, s) {\n return luaL_loadbuffer(L, s, s.length, s);\n};\n\nconst luaL_dostring = function(L, s) {\n return (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0));\n};\n\nconst luaL_getmetafield = function(L, obj, event) {\n if (!lua_getmetatable(L, obj)) /* no metatable? */\n return LUA_TNIL;\n else {\n lua_pushstring(L, event);\n let tt = lua_rawget(L, -2);\n if (tt === LUA_TNIL) /* is metafield nil? */\n lua_pop(L, 2); /* remove metatable and metafield */\n else\n lua_remove(L, -2); /* remove only metatable */\n return tt; /* return metafield type */\n }\n};\n\nconst luaL_callmeta = function(L, obj, event) {\n obj = lua_absindex(L, obj);\n if (luaL_getmetafield(L, obj, event) === LUA_TNIL)\n return false;\n\n lua_pushvalue(L, obj);\n lua_call(L, 1, 1);\n\n return true;\n};\n\nconst luaL_len = function(L, idx) {\n lua_len(L, idx);\n let l = lua_tointegerx(L, -1);\n if (l === false)\n luaL_error(L, to_luastring(\"object length is not an integer\", true));\n lua_pop(L, 1); /* remove object */\n return l;\n};\n\nconst p_I = to_luastring(\"%I\");\nconst p_f = to_luastring(\"%f\");\nconst luaL_tolstring = function(L, idx) {\n if (luaL_callmeta(L, idx, __tostring)) {\n if (!lua_isstring(L, -1))\n luaL_error(L, to_luastring(\"'__tostring' must return a string\"));\n } else {\n let t = lua_type(L, idx);\n switch(t) {\n case LUA_TNUMBER: {\n if (lua_isinteger(L, idx))\n lua_pushfstring(L, p_I, lua_tointeger(L, idx));\n else\n lua_pushfstring(L, p_f, lua_tonumber(L, idx));\n break;\n }\n case LUA_TSTRING:\n lua_pushvalue(L, idx);\n break;\n case LUA_TBOOLEAN:\n lua_pushliteral(L, (lua_toboolean(L, idx) ? \"true\" : \"false\"));\n break;\n case LUA_TNIL:\n lua_pushliteral(L, \"nil\");\n break;\n default: {\n let tt = luaL_getmetafield(L, idx, __name);\n let kind = tt === LUA_TSTRING ? lua_tostring(L, -1) : luaL_typename(L, idx);\n lua_pushfstring(L, to_luastring(\"%s: %p\"), kind, lua_topointer(L, idx));\n if (tt !== LUA_TNIL)\n lua_remove(L, -2);\n break;\n }\n }\n }\n\n return lua_tolstring(L, -1);\n};\n\n/*\n** Stripped-down 'require': After checking \"loaded\" table, calls 'openf'\n** to open a module, registers the result in 'package.loaded' table and,\n** if 'glb' is true, also registers the result in the global table.\n** Leaves resulting module on the top.\n*/\nconst luaL_requiref = function(L, modname, openf, glb) {\n luaL_getsubtable(L, LUA_REGISTRYINDEX, LUA_LOADED_TABLE);\n lua_getfield(L, -1, modname); /* LOADED[modname] */\n if (!lua_toboolean(L, -1)) { /* package not already loaded? */\n lua_pop(L, 1); /* remove field */\n lua_pushcfunction(L, openf);\n lua_pushstring(L, modname); /* argument to open function */\n lua_call(L, 1, 1); /* call 'openf' to open module */\n lua_pushvalue(L, -1); /* make copy of module (call result) */\n lua_setfield(L, -3, modname); /* LOADED[modname] = module */\n }\n lua_remove(L, -2); /* remove LOADED table */\n if (glb) {\n lua_pushvalue(L, -1); /* copy of module */\n lua_setglobal(L, modname); /* _G[modname] = module */\n }\n};\n\nconst find_subarray = function(arr, subarr, from_index) {\n var i = from_index >>> 0,\n sl = subarr.length,\n l = arr.length + 1 - sl;\n\n loop: for (; i < l; i++) {\n for (let j = 0; j < sl; j++)\n if (arr[i+j] !== subarr[j])\n continue loop;\n return i;\n }\n return -1;\n};\n\nconst luaL_gsub = function(L, s, p, r) {\n let wild;\n let b = new luaL_Buffer();\n luaL_buffinit(L, b);\n while ((wild = find_subarray(s, p)) >= 0) {\n luaL_addlstring(b, s, wild); /* push prefix */\n luaL_addstring(b, r); /* push replacement in place of pattern */\n s = s.subarray(wild + p.length); /* continue after 'p' */\n }\n luaL_addstring(b, s); /* push last suffix */\n luaL_pushresult(b);\n return lua_tostring(L, -1);\n};\n\n/*\n** ensure that stack[idx][fname] has a table and push that table\n** into the stack\n*/\nconst luaL_getsubtable = function(L, idx, fname) {\n if (lua_getfield(L, idx, fname) === LUA_TTABLE)\n return true; /* table already there */\n else {\n lua_pop(L, 1); /* remove previous result */\n idx = lua_absindex(L, idx);\n lua_newtable(L);\n lua_pushvalue(L, -1); /* copy to be left at top */\n lua_setfield(L, idx, fname); /* assign new table to field */\n return false; /* false, because did not find table there */\n }\n};\n\n/*\n** set functions from list 'l' into table at top - 'nup'; each\n** function gets the 'nup' elements at the top as upvalues.\n** Returns with only the table at the stack.\n*/\nconst luaL_setfuncs = function(L, l, nup) {\n luaL_checkstack(L, nup, to_luastring(\"too many upvalues\", true));\n for (let lib in l) { /* fill the table with given functions */\n for (let i = 0; i < nup; i++) /* copy upvalues to the top */\n lua_pushvalue(L, -nup);\n lua_pushcclosure(L, l[lib], nup); /* closure with those upvalues */\n lua_setfield(L, -(nup + 2), to_luastring(lib));\n }\n lua_pop(L, nup); /* remove upvalues */\n};\n\n/*\n** Ensures the stack has at least 'space' extra slots, raising an error\n** if it cannot fulfill the request. (The error handling needs a few\n** extra slots to format the error message. In case of an error without\n** this extra space, Lua will generate the same 'stack overflow' error,\n** but without 'msg'.)\n*/\nconst luaL_checkstack = function(L, space, msg) {\n if (!lua_checkstack(L, space)) {\n if (msg)\n luaL_error(L, to_luastring(\"stack overflow (%s)\"), msg);\n else\n luaL_error(L, to_luastring('stack overflow', true));\n }\n};\n\nconst luaL_newlibtable = function(L) {\n lua_createtable(L);\n};\n\nconst luaL_newlib = function(L, l) {\n lua_createtable(L);\n luaL_setfuncs(L, l, 0);\n};\n\n/* predefined references */\nconst LUA_NOREF = -2;\nconst LUA_REFNIL = -1;\n\nconst luaL_ref = function(L, t) {\n let ref;\n if (lua_isnil(L, -1)) {\n lua_pop(L, 1); /* remove from stack */\n return LUA_REFNIL; /* 'nil' has a unique fixed reference */\n }\n t = lua_absindex(L, t);\n lua_rawgeti(L, t, 0); /* get first free element */\n ref = lua_tointeger(L, -1); /* ref = t[freelist] */\n lua_pop(L, 1); /* remove it from stack */\n if (ref !== 0) { /* any free element? */\n lua_rawgeti(L, t, ref); /* remove it from list */\n lua_rawseti(L, t, 0); /* (t[freelist] = t[ref]) */\n }\n else /* no free elements */\n ref = lua_rawlen(L, t) + 1; /* get a new reference */\n lua_rawseti(L, t, ref);\n return ref;\n};\n\n\nconst luaL_unref = function(L, t, ref) {\n if (ref >= 0) {\n t = lua_absindex(L, t);\n lua_rawgeti(L, t, 0);\n lua_rawseti(L, t, ref); /* t[ref] = t[freelist] */\n lua_pushinteger(L, ref);\n lua_rawseti(L, t, 0); /* t[freelist] = ref */\n }\n};\n\n\nconst errfile = function(L, what, fnameindex, error) {\n let serr = error.message;\n let filename = lua_tostring(L, fnameindex).subarray(1);\n lua_pushfstring(L, to_luastring(\"cannot %s %s: %s\"), to_luastring(what), filename, to_luastring(serr));\n lua_remove(L, fnameindex);\n return LUA_ERRFILE;\n};\n\nlet getc;\n\nconst utf8_bom = [0XEF, 0XBB, 0XBF]; /* UTF-8 BOM mark */\nconst skipBOM = function(lf) {\n lf.n = 0;\n let c;\n let p = 0;\n do {\n c = getc(lf);\n if (c === null || c !== utf8_bom[p]) return c;\n p++;\n lf.buff[lf.n++] = c; /* to be read by the parser */\n } while (p < utf8_bom.length);\n lf.n = 0; /* prefix matched; discard it */\n return getc(lf); /* return next character */\n};\n\n/*\n** reads the first character of file 'f' and skips an optional BOM mark\n** in its beginning plus its first line if it starts with '#'. Returns\n** true if it skipped the first line. In any case, '*cp' has the\n** first \"valid\" character of the file (after the optional BOM and\n** a first-line comment).\n*/\nconst skipcomment = function(lf) {\n let c = skipBOM(lf);\n if (c === 35 /* '#'.charCodeAt(0) */) { /* first line is a comment (Unix exec. file)? */\n do { /* skip first line */\n c = getc(lf);\n } while (c && c !== 10 /* '\\n'.charCodeAt(0) */);\n\n return {\n skipped: true,\n c: getc(lf) /* skip end-of-line, if present */\n };\n } else {\n return {\n skipped: false,\n c: c\n };\n }\n};\n\nlet luaL_loadfilex;\n\nif (typeof process === \"undefined\") {\n class LoadF {\n constructor() {\n this.n = NaN; /* number of pre-read characters */\n this.f = null; /* file being read */\n this.buff = new Uint8Array(1024); /* area for reading file */\n this.pos = 0; /* current position in file */\n this.err = void 0;\n }\n }\n\n const getF = function(L, ud) {\n let lf = ud;\n\n if (lf.f !== null && lf.n > 0) { /* are there pre-read characters to be read? */\n let bytes = lf.n; /* return them (chars already in buffer) */\n lf.n = 0; /* no more pre-read characters */\n lf.f = lf.f.subarray(lf.pos); /* we won't use lf.buff anymore */\n return lf.buff.subarray(0, bytes);\n }\n\n let f = lf.f;\n lf.f = null;\n return f;\n };\n\n getc = function(lf) {\n return lf.pos < lf.f.length ? lf.f[lf.pos++] : null;\n };\n\n luaL_loadfilex = function(L, filename, mode) {\n let lf = new LoadF();\n let fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */\n if (filename === null) {\n throw new Error(\"Can't read stdin in the browser\");\n } else {\n lua_pushfstring(L, to_luastring(\"@%s\"), filename);\n let path = to_uristring(filename);\n let xhr = new XMLHttpRequest();\n xhr.open(\"GET\", path, false);\n /*\n Synchronous xhr in main thread always returns a js string.\n Some browsers make console noise if you even attempt to set responseType\n */\n if (typeof window === \"undefined\") {\n xhr.responseType = \"arraybuffer\";\n }\n xhr.send();\n if (xhr.status >= 200 && xhr.status <= 299) {\n if (typeof xhr.response === \"string\") {\n lf.f = to_luastring(xhr.response);\n } else {\n lf.f = new Uint8Array(xhr.response);\n }\n } else {\n lf.err = xhr.status;\n return errfile(L, \"open\", fnameindex, { message: `${xhr.status}: ${xhr.statusText}` });\n }\n }\n let com = skipcomment(lf);\n /* check for signature first, as we don't want to add line number corrections in binary case */\n if (com.c === LUA_SIGNATURE[0] && filename) { /* binary file? */\n /* no need to re-open */\n } else if (com.skipped) { /* read initial portion */\n lf.buff[lf.n++] = 10 /* '\\n'.charCodeAt(0) */; /* add line to correct line numbers */\n }\n if (com.c !== null)\n lf.buff[lf.n++] = com.c; /* 'c' is the first character of the stream */\n let status = lua_load(L, getF, lf, lua_tostring(L, -1), mode);\n let readstatus = lf.err;\n if (readstatus) {\n lua_settop(L, fnameindex); /* ignore results from 'lua_load' */\n return errfile(L, \"read\", fnameindex, readstatus);\n }\n lua_remove(L, fnameindex);\n return status;\n };\n} else {\n const fs = require('fs');\n\n class LoadF {\n constructor() {\n this.n = NaN; /* number of pre-read characters */\n this.f = null; /* file being read */\n this.buff = Buffer.alloc(1024); /* area for reading file */\n this.pos = 0; /* current position in file */\n this.err = void 0;\n }\n }\n\n const getF = function(L, ud) {\n let lf = ud;\n let bytes = 0;\n if (lf.n > 0) { /* are there pre-read characters to be read? */\n bytes = lf.n; /* return them (chars already in buffer) */\n lf.n = 0; /* no more pre-read characters */\n } else { /* read a block from file */\n try {\n bytes = fs.readSync(lf.f, lf.buff, 0, lf.buff.length, lf.pos); /* read block */\n } catch(e) {\n lf.err = e;\n bytes = 0;\n }\n lf.pos += bytes;\n }\n if (bytes > 0)\n return lf.buff.subarray(0, bytes);\n else return null;\n };\n\n getc = function(lf) {\n let b = Buffer.alloc(1);\n let bytes;\n try {\n bytes = fs.readSync(lf.f, b, 0, 1, lf.pos);\n } catch(e) {\n lf.err = e;\n return null;\n }\n lf.pos += bytes;\n return bytes > 0 ? b.readUInt8() : null;\n };\n\n luaL_loadfilex = function(L, filename, mode) {\n let lf = new LoadF();\n let fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */\n if (filename === null) {\n lua_pushliteral(L, \"=stdin\");\n lf.f = process.stdin.fd;\n } else {\n lua_pushfstring(L, to_luastring(\"@%s\"), filename);\n try {\n lf.f = fs.openSync(filename, \"r\");\n } catch (e) {\n return errfile(L, \"open\", fnameindex, e);\n }\n }\n let com = skipcomment(lf);\n /* check for signature first, as we don't want to add line number corrections in binary case */\n if (com.c === LUA_SIGNATURE[0] && filename) { /* binary file? */\n /* no need to re-open */\n } else if (com.skipped) { /* read initial portion */\n lf.buff[lf.n++] = 10 /* '\\n'.charCodeAt(0) */; /* add line to correct line numbers */\n }\n if (com.c !== null)\n lf.buff[lf.n++] = com.c; /* 'c' is the first character of the stream */\n let status = lua_load(L, getF, lf, lua_tostring(L, -1), mode);\n let readstatus = lf.err;\n if (filename) try { fs.closeSync(lf.f); } catch(e) {} /* close file (even in case of errors) */\n if (readstatus) {\n lua_settop(L, fnameindex); /* ignore results from 'lua_load' */\n return errfile(L, \"read\", fnameindex, readstatus);\n }\n lua_remove(L, fnameindex);\n return status;\n };\n}\n\nconst luaL_loadfile = function(L, filename) {\n return luaL_loadfilex(L, filename, null);\n};\n\nconst luaL_dofile = function(L, filename) {\n return (luaL_loadfile(L, filename) || lua_pcall(L, 0, LUA_MULTRET, 0));\n};\n\nconst lua_writestringerror = function() {\n for (let i=0; i<arguments.length; i++) {\n let a = arguments[i];\n if (typeof process === \"undefined\") {\n /* split along new lines for separate console.error invocations */\n do {\n /* regexp uses [\\d\\D] to work around matching new lines\n the 's' flag is non-standard */\n let r = /([^\\n]*)\\n?([\\d\\D]*)/.exec(a);\n console.error(r[1]);\n a = r[2];\n } while (a !== \"\");\n } else {\n process.stderr.write(a);\n }\n }\n};\n\nconst luaL_checkversion_ = function(L, ver, sz) {\n let v = lua_version(L);\n if (sz != LUAL_NUMSIZES) /* check numeric types */\n luaL_error(L, to_luastring(\"core and library have incompatible numeric types\"));\n if (v != lua_version(null))\n luaL_error(L, to_luastring(\"multiple Lua VMs detected\"));\n else if (v !== ver)\n luaL_error(L, to_luastring(\"version mismatch: app. needs %f, Lua core provides %f\"), ver, v);\n};\n\n/* There is no point in providing this function... */\nconst luaL_checkversion = function(L) {\n luaL_checkversion_(L, LUA_VERSION_NUM, LUAL_NUMSIZES);\n};\n\nmodule.exports.LUA_ERRFILE = LUA_ERRFILE;\nmodule.exports.LUA_FILEHANDLE = LUA_FILEHANDLE;\nmodule.exports.LUA_LOADED_TABLE = LUA_LOADED_TABLE;\nmodule.exports.LUA_NOREF = LUA_NOREF;\nmodule.exports.LUA_PRELOAD_TABLE = LUA_PRELOAD_TABLE;\nmodule.exports.LUA_REFNIL = LUA_REFNIL;\nmodule.exports.luaL_Buffer = luaL_Buffer;\nmodule.exports.luaL_addchar = luaL_addchar;\nmodule.exports.luaL_addlstring = luaL_addlstring;\nmodule.exports.luaL_addsize = luaL_addsize;\nmodule.exports.luaL_addstring = luaL_addstring;\nmodule.exports.luaL_addvalue = luaL_addvalue;\nmodule.exports.luaL_argcheck = luaL_argcheck;\nmodule.exports.luaL_argerror = luaL_argerror;\nmodule.exports.luaL_buffinit = luaL_buffinit;\nmodule.exports.luaL_buffinitsize = luaL_buffinitsize;\nmodule.exports.luaL_callmeta = luaL_callmeta;\nmodule.exports.luaL_checkany = luaL_checkany;\nmodule.exports.luaL_checkinteger = luaL_checkinteger;\nmodule.exports.luaL_checklstring = luaL_checklstring;\nmodule.exports.luaL_checknumber = luaL_checknumber;\nmodule.exports.luaL_checkoption = luaL_checkoption;\nmodule.exports.luaL_checkstack = luaL_checkstack;\nmodule.exports.luaL_checkstring = luaL_checkstring;\nmodule.exports.luaL_checktype = luaL_checktype;\nmodule.exports.luaL_checkudata = luaL_checkudata;\nmodule.exports.luaL_checkversion = luaL_checkversion;\nmodule.exports.luaL_checkversion_ = luaL_checkversion_;\nmodule.exports.luaL_dofile = luaL_dofile;\nmodule.exports.luaL_dostring = luaL_dostring;\nmodule.exports.luaL_error = luaL_error;\nmodule.exports.luaL_execresult = luaL_execresult;\nmodule.exports.luaL_fileresult = luaL_fileresult;\nmodule.exports.luaL_getmetafield = luaL_getmetafield;\nmodule.exports.luaL_getmetatable = luaL_getmetatable;\nmodule.exports.luaL_getsubtable = luaL_getsubtable;\nmodule.exports.luaL_gsub = luaL_gsub;\nmodule.exports.luaL_len = luaL_len;\nmodule.exports.luaL_loadbuffer = luaL_loadbuffer;\nmodule.exports.luaL_loadbufferx = luaL_loadbufferx;\nmodule.exports.luaL_loadfile = luaL_loadfile;\nmodule.exports.luaL_loadfilex = luaL_loadfilex;\nmodule.exports.luaL_loadstring = luaL_loadstring;\nmodule.exports.luaL_newlib = luaL_newlib;\nmodule.exports.luaL_newlibtable = luaL_newlibtable;\nmodule.exports.luaL_newmetatable = luaL_newmetatable;\nmodule.exports.luaL_newstate = luaL_newstate;\nmodule.exports.luaL_opt = luaL_opt;\nmodule.exports.luaL_optinteger = luaL_optinteger;\nmodule.exports.luaL_optlstring = luaL_optlstring;\nmodule.exports.luaL_optnumber = luaL_optnumber;\nmodule.exports.luaL_optstring = luaL_optstring;\nmodule.exports.luaL_prepbuffer = luaL_prepbuffer;\nmodule.exports.luaL_prepbuffsize = luaL_prepbuffsize;\nmodule.exports.luaL_pushresult = luaL_pushresult;\nmodule.exports.luaL_pushresultsize = luaL_pushresultsize;\nmodule.exports.luaL_ref = luaL_ref;\nmodule.exports.luaL_requiref = luaL_requiref;\nmodule.exports.luaL_setfuncs = luaL_setfuncs;\nmodule.exports.luaL_setmetatable = luaL_setmetatable;\nmodule.exports.luaL_testudata = luaL_testudata;\nmodule.exports.luaL_tolstring = luaL_tolstring;\nmodule.exports.luaL_traceback = luaL_traceback;\nmodule.exports.luaL_typename = luaL_typename;\nmodule.exports.luaL_unref = luaL_unref;\nmodule.exports.luaL_where = luaL_where;\nmodule.exports.lua_writestringerror = lua_writestringerror;\n","\"use strict\";\n\nconst {\n LUA_HOOKCALL,\n LUA_HOOKRET,\n LUA_HOOKTAILCALL,\n LUA_MASKCALL,\n LUA_MASKLINE,\n LUA_MASKRET,\n LUA_MINSTACK,\n LUA_MULTRET,\n LUA_SIGNATURE,\n constant_types: {\n LUA_TCCL,\n LUA_TLCF,\n LUA_TLCL,\n LUA_TNIL\n },\n thread_status: {\n LUA_ERRMEM,\n LUA_ERRERR,\n LUA_ERRRUN,\n LUA_ERRSYNTAX,\n LUA_OK,\n LUA_YIELD\n },\n lua_Debug,\n luastring_indexOf,\n to_luastring\n} = require('./defs.js');\nconst lapi = require('./lapi.js');\nconst ldebug = require('./ldebug.js');\nconst lfunc = require('./lfunc.js');\nconst {\n api_check,\n lua_assert,\n LUAI_MAXCCALLS\n} = require('./llimits.js');\nconst lobject = require('./lobject.js');\nconst lopcodes = require('./lopcodes.js');\nconst lparser = require('./lparser.js');\nconst lstate = require('./lstate.js');\nconst { luaS_newliteral } = require('./lstring.js');\nconst ltm = require('./ltm.js');\nconst { LUAI_MAXSTACK } = require('./luaconf.js');\nconst lundump = require('./lundump.js');\nconst lvm = require('./lvm.js');\nconst { MBuffer } = require('./lzio.js');\n\nconst adjust_top = function(L, newtop) {\n if (L.top < newtop) {\n while (L.top < newtop)\n L.stack[L.top++] = new lobject.TValue(LUA_TNIL, null);\n } else {\n while (L.top > newtop)\n delete L.stack[--L.top];\n }\n};\n\nconst seterrorobj = function(L, errcode, oldtop) {\n let current_top = L.top;\n\n /* extend stack so that L.stack[oldtop] is sure to exist */\n while (L.top < oldtop + 1)\n L.stack[L.top++] = new lobject.TValue(LUA_TNIL, null);\n\n switch (errcode) {\n case LUA_ERRMEM: {\n lobject.setsvalue2s(L, oldtop, luaS_newliteral(L, \"not enough memory\"));\n break;\n }\n case LUA_ERRERR: {\n lobject.setsvalue2s(L, oldtop, luaS_newliteral(L, \"error in error handling\"));\n break;\n }\n default: {\n lobject.setobjs2s(L, oldtop, current_top - 1);\n }\n }\n\n while (L.top > oldtop + 1)\n delete L.stack[--L.top];\n};\n\nconst ERRORSTACKSIZE = LUAI_MAXSTACK + 200;\n\nconst luaD_reallocstack = function(L, newsize) {\n lua_assert(newsize <= LUAI_MAXSTACK || newsize == ERRORSTACKSIZE);\n lua_assert(L.stack_last == L.stack.length - lstate.EXTRA_STACK);\n L.stack.length = newsize;\n L.stack_last = newsize - lstate.EXTRA_STACK;\n};\n\nconst luaD_growstack = function(L, n) {\n let size = L.stack.length;\n if (size > LUAI_MAXSTACK)\n luaD_throw(L, LUA_ERRERR);\n else {\n let needed = L.top + n + lstate.EXTRA_STACK;\n let newsize = 2 * size;\n if (newsize > LUAI_MAXSTACK) newsize = LUAI_MAXSTACK;\n if (newsize < needed) newsize = needed;\n if (newsize > LUAI_MAXSTACK) { /* stack overflow? */\n luaD_reallocstack(L, ERRORSTACKSIZE);\n ldebug.luaG_runerror(L, to_luastring(\"stack overflow\", true));\n }\n else\n luaD_reallocstack(L, newsize);\n }\n};\n\nconst luaD_checkstack = function(L, n) {\n if (L.stack_last - L.top <= n)\n luaD_growstack(L, n);\n};\n\nconst stackinuse = function(L) {\n let lim = L.top;\n for (let ci = L.ci; ci !== null; ci = ci.previous) {\n if (lim < ci.top) lim = ci.top;\n }\n lua_assert(lim <= L.stack_last);\n return lim + 1; /* part of stack in use */\n};\n\nconst luaD_shrinkstack = function(L) {\n let inuse = stackinuse(L);\n let goodsize = inuse + Math.floor(inuse / 8) + 2*lstate.EXTRA_STACK;\n if (goodsize > LUAI_MAXSTACK)\n goodsize = LUAI_MAXSTACK; /* respect stack limit */\n if (L.stack.length > LUAI_MAXSTACK) /* had been handling stack overflow? */\n lstate.luaE_freeCI(L); /* free all CIs (list grew because of an error) */\n /* if thread is currently not handling a stack overflow and its\n good size is smaller than current size, shrink its stack */\n if (inuse <= (LUAI_MAXSTACK - lstate.EXTRA_STACK) && goodsize < L.stack.length)\n luaD_reallocstack(L, goodsize);\n};\n\nconst luaD_inctop = function(L) {\n luaD_checkstack(L, 1);\n L.stack[L.top++] = new lobject.TValue(LUA_TNIL, null);\n};\n\n/*\n** Prepares a function call: checks the stack, creates a new CallInfo\n** entry, fills in the relevant information, calls hook if needed.\n** If function is a JS function, does the call, too. (Otherwise, leave\n** the execution ('luaV_execute') to the caller, to allow stackless\n** calls.) Returns true iff function has been executed (JS function).\n*/\nconst luaD_precall = function(L, off, nresults) {\n let func = L.stack[off];\n\n switch(func.type) {\n case LUA_TCCL:\n case LUA_TLCF: {\n let f = func.type === LUA_TCCL ? func.value.f : func.value;\n\n luaD_checkstack(L, LUA_MINSTACK);\n let ci = lstate.luaE_extendCI(L);\n ci.funcOff = off;\n ci.nresults = nresults;\n ci.func = func;\n ci.top = L.top + LUA_MINSTACK;\n lua_assert(ci.top <= L.stack_last);\n ci.callstatus = 0;\n if (L.hookmask & LUA_MASKCALL)\n luaD_hook(L, LUA_HOOKCALL, -1);\n let n = f(L); /* do the actual call */\n if (typeof n !== \"number\" || n < 0 || (n|0) !== n)\n throw Error(\"invalid return value from JS function (expected integer)\");\n lapi.api_checknelems(L, n);\n\n luaD_poscall(L, ci, L.top - n, n);\n\n return true;\n }\n case LUA_TLCL: {\n let base;\n let p = func.value.p;\n let n = L.top - off - 1;\n let fsize = p.maxstacksize;\n luaD_checkstack(L, fsize);\n if (p.is_vararg) {\n base = adjust_varargs(L, p, n);\n } else {\n for (; n < p.numparams; n++)\n L.stack[L.top++] = new lobject.TValue(LUA_TNIL, null); // complete missing arguments\n base = off + 1;\n }\n\n let ci = lstate.luaE_extendCI(L);\n ci.funcOff = off;\n ci.nresults = nresults;\n ci.func = func;\n ci.l_base = base;\n ci.top = base + fsize;\n adjust_top(L, ci.top);\n ci.l_code = p.code;\n ci.l_savedpc = 0;\n ci.callstatus = lstate.CIST_LUA;\n if (L.hookmask & LUA_MASKCALL)\n callhook(L, ci);\n return false;\n }\n default:\n luaD_checkstack(L, 1);\n tryfuncTM(L, off, func);\n return luaD_precall(L, off, nresults);\n }\n};\n\nconst luaD_poscall = function(L, ci, firstResult, nres) {\n let wanted = ci.nresults;\n\n if (L.hookmask & (LUA_MASKRET | LUA_MASKLINE)) {\n if (L.hookmask & LUA_MASKRET)\n luaD_hook(L, LUA_HOOKRET, -1);\n L.oldpc = ci.previous.l_savedpc; /* 'oldpc' for caller function */\n }\n\n let res = ci.funcOff;\n L.ci = ci.previous;\n L.ci.next = null;\n return moveresults(L, firstResult, res, nres, wanted);\n};\n\nconst moveresults = function(L, firstResult, res, nres, wanted) {\n switch (wanted) {\n case 0:\n break;\n case 1: {\n if (nres === 0)\n L.stack[res].setnilvalue();\n else {\n lobject.setobjs2s(L, res, firstResult); /* move it to proper place */\n }\n break;\n }\n case LUA_MULTRET: {\n for (let i = 0; i < nres; i++)\n lobject.setobjs2s(L, res + i, firstResult + i);\n for (let i=L.top; i>=(res + nres); i--)\n delete L.stack[i];\n L.top = res + nres;\n return false;\n }\n default: {\n let i;\n if (wanted <= nres) {\n for (i = 0; i < wanted; i++)\n lobject.setobjs2s(L, res + i, firstResult + i);\n } else {\n for (i = 0; i < nres; i++)\n lobject.setobjs2s(L, res + i, firstResult + i);\n for (; i < wanted; i++) {\n if (res+i >= L.top)\n L.stack[res + i] = new lobject.TValue(LUA_TNIL, null);\n else\n L.stack[res + i].setnilvalue();\n }\n }\n break;\n }\n }\n let newtop = res + wanted; /* top points after the last result */\n for (let i=L.top; i>=newtop; i--)\n delete L.stack[i];\n L.top = newtop;\n return true;\n};\n\n/*\n** Call a hook for the given event. Make sure there is a hook to be\n** called. (Both 'L->hook' and 'L->hookmask', which triggers this\n** function, can be changed asynchronously by signals.)\n*/\nconst luaD_hook = function(L, event, line) {\n let hook = L.hook;\n if (hook && L.allowhook) { /* make sure there is a hook */\n let ci = L.ci;\n let top = L.top;\n let ci_top = ci.top;\n let ar = new lua_Debug();\n ar.event = event;\n ar.currentline = line;\n ar.i_ci = ci;\n luaD_checkstack(L, LUA_MINSTACK); /* ensure minimum stack size */\n ci.top = L.top + LUA_MINSTACK;\n lua_assert(ci.top <= L.stack_last);\n L.allowhook = 0; /* cannot call hooks inside a hook */\n ci.callstatus |= lstate.CIST_HOOKED;\n hook(L, ar);\n lua_assert(!L.allowhook);\n L.allowhook = 1;\n ci.top = ci_top;\n adjust_top(L, top);\n ci.callstatus &= ~lstate.CIST_HOOKED;\n }\n};\n\nconst callhook = function(L, ci) {\n let hook = LUA_HOOKCALL;\n ci.l_savedpc++; /* hooks assume 'pc' is already incremented */\n if ((ci.previous.callstatus & lstate.CIST_LUA) &&\n ci.previous.l_code[ci.previous.l_savedpc - 1].opcode == lopcodes.OpCodesI.OP_TAILCALL) {\n ci.callstatus |= lstate.CIST_TAIL;\n hook = LUA_HOOKTAILCALL;\n }\n luaD_hook(L, hook, -1);\n ci.l_savedpc--; /* correct 'pc' */\n};\n\nconst adjust_varargs = function(L, p, actual) {\n let nfixargs = p.numparams;\n /* move fixed parameters to final position */\n let fixed = L.top - actual; /* first fixed argument */\n let base = L.top; /* final position of first argument */\n\n let i;\n for (i = 0; i < nfixargs && i < actual; i++) {\n lobject.pushobj2s(L, L.stack[fixed + i]);\n L.stack[fixed + i].setnilvalue();\n }\n\n for (; i < nfixargs; i++)\n L.stack[L.top++] = new lobject.TValue(LUA_TNIL, null);\n\n return base;\n};\n\nconst tryfuncTM = function(L, off, func) {\n let tm = ltm.luaT_gettmbyobj(L, func, ltm.TMS.TM_CALL);\n if (!tm.ttisfunction(tm))\n ldebug.luaG_typeerror(L, func, to_luastring(\"call\", true));\n /* Open a hole inside the stack at 'func' */\n lobject.pushobj2s(L, L.stack[L.top-1]); /* push top of stack again */\n for (let p = L.top-2; p > off; p--)\n lobject.setobjs2s(L, p, p-1); /* move other items up one */\n lobject.setobj2s(L, off, tm); /* tag method is the new function to be called */\n};\n\n/*\n** Check appropriate error for stack overflow (\"regular\" overflow or\n** overflow while handling stack overflow). If 'nCalls' is larger than\n** LUAI_MAXCCALLS (which means it is handling a \"regular\" overflow) but\n** smaller than 9/8 of LUAI_MAXCCALLS, does not report an error (to\n** allow overflow handling to work)\n*/\nconst stackerror = function(L) {\n if (L.nCcalls === LUAI_MAXCCALLS)\n ldebug.luaG_runerror(L, to_luastring(\"JS stack overflow\", true));\n else if (L.nCcalls >= LUAI_MAXCCALLS + (LUAI_MAXCCALLS >> 3))\n luaD_throw(L, LUA_ERRERR); /* error while handing stack error */\n};\n\n/*\n** Call a function (JS or Lua). The function to be called is at func.\n** The arguments are on the stack, right after the function.\n** When returns, all the results are on the stack, starting at the original\n** function position.\n*/\nconst luaD_call = function(L, off, nResults) {\n if (++L.nCcalls >= LUAI_MAXCCALLS)\n stackerror(L);\n if (!luaD_precall(L, off, nResults))\n lvm.luaV_execute(L);\n L.nCcalls--;\n};\n\nconst luaD_throw = function(L, errcode) {\n if (L.errorJmp) { /* thread has an error handler? */\n L.errorJmp.status = errcode; /* set status */\n throw L.errorJmp;\n } else { /* thread has no error handler */\n let g = L.l_G;\n L.status = errcode; /* mark it as dead */\n if (g.mainthread.errorJmp) { /* main thread has a handler? */\n g.mainthread.stack[g.mainthread.top++] = L.stack[L.top - 1]; /* copy error obj. */\n luaD_throw(g.mainthread, errcode); /* re-throw in main thread */\n } else { /* no handler at all; abort */\n let panic = g.panic;\n if (panic) { /* panic function? */\n seterrorobj(L, errcode, L.top); /* assume EXTRA_STACK */\n if (L.ci.top < L.top)\n L.ci.top = L.top; /* pushing msg. can break this invariant */\n panic(L); /* call panic function (last chance to jump out) */\n }\n throw new Error(`Aborted ${errcode}`);\n }\n }\n};\n\nconst luaD_rawrunprotected = function(L, f, ud) {\n let oldnCcalls = L.nCcalls;\n let lj = {\n status: LUA_OK,\n previous: L.errorJmp /* chain new error handler */\n };\n L.errorJmp = lj;\n\n try {\n f(L, ud);\n } catch (e) {\n if (lj.status === LUA_OK) {\n /* error was not thrown via luaD_throw, i.e. it is a JS error */\n /* run user error handler (if it exists) */\n let atnativeerror = L.l_G.atnativeerror;\n if (atnativeerror) {\n try {\n lj.status = LUA_OK;\n\n lapi.lua_pushcfunction(L, atnativeerror);\n lapi.lua_pushlightuserdata(L, e);\n luaD_callnoyield(L, L.top - 2, 1);\n\n /* Now run the message handler (if it exists) */\n /* copy of luaG_errormsg without the throw */\n if (L.errfunc !== 0) { /* is there an error handling function? */\n let errfunc = L.errfunc;\n lobject.pushobj2s(L, L.stack[L.top - 1]); /* move argument */\n lobject.setobjs2s(L, L.top - 2, errfunc); /* push function */\n luaD_callnoyield(L, L.top - 2, 1);\n }\n\n lj.status = LUA_ERRRUN;\n } catch(e2) {\n if (lj.status === LUA_OK) {\n /* also failed */\n lj.status = -1;\n }\n }\n } else {\n lj.status = -1;\n }\n }\n }\n\n L.errorJmp = lj.previous;\n L.nCcalls = oldnCcalls;\n\n return lj.status;\n\n};\n\n/*\n** Completes the execution of an interrupted C function, calling its\n** continuation function.\n*/\nconst finishCcall = function(L, status) {\n let ci = L.ci;\n\n /* must have a continuation and must be able to call it */\n lua_assert(ci.c_k !== null && L.nny === 0);\n /* error status can only happen in a protected call */\n lua_assert(ci.callstatus & lstate.CIST_YPCALL || status === LUA_YIELD);\n\n if (ci.callstatus & lstate.CIST_YPCALL) { /* was inside a pcall? */\n ci.callstatus &= ~lstate.CIST_YPCALL; /* continuation is also inside it */\n L.errfunc = ci.c_old_errfunc; /* with the same error function */\n }\n\n /* finish 'lua_callk'/'lua_pcall'; CIST_YPCALL and 'errfunc' already\n handled */\n if (ci.nresults === LUA_MULTRET && L.ci.top < L.top) L.ci.top = L.top;\n let c_k = ci.c_k; /* don't want to call as method */\n let n = c_k(L, status, ci.c_ctx); /* call continuation function */\n lapi.api_checknelems(L, n);\n luaD_poscall(L, ci, L.top - n, n); /* finish 'luaD_precall' */\n};\n\n/*\n** Executes \"full continuation\" (everything in the stack) of a\n** previously interrupted coroutine until the stack is empty (or another\n** interruption long-jumps out of the loop). If the coroutine is\n** recovering from an error, 'ud' points to the error status, which must\n** be passed to the first continuation function (otherwise the default\n** status is LUA_YIELD).\n*/\nconst unroll = function(L, ud) {\n if (ud !== null) /* error status? */\n finishCcall(L, ud); /* finish 'lua_pcallk' callee */\n\n while (L.ci !== L.base_ci) { /* something in the stack */\n if (!(L.ci.callstatus & lstate.CIST_LUA)) /* C function? */\n finishCcall(L, LUA_YIELD); /* complete its execution */\n else { /* Lua function */\n lvm.luaV_finishOp(L); /* finish interrupted instruction */\n lvm.luaV_execute(L); /* execute down to higher C 'boundary' */\n }\n }\n};\n\n/*\n** Try to find a suspended protected call (a \"recover point\") for the\n** given thread.\n*/\nconst findpcall = function(L) {\n for (let ci = L.ci; ci !== null; ci = ci.previous) { /* search for a pcall */\n if (ci.callstatus & lstate.CIST_YPCALL)\n return ci;\n }\n\n return null; /* no pending pcall */\n};\n\n/*\n** Recovers from an error in a coroutine. Finds a recover point (if\n** there is one) and completes the execution of the interrupted\n** 'luaD_pcall'. If there is no recover point, returns zero.\n*/\nconst recover = function(L, status) {\n let ci = findpcall(L);\n if (ci === null) return 0; /* no recovery point */\n /* \"finish\" luaD_pcall */\n let oldtop = ci.extra;\n lfunc.luaF_close(L, oldtop);\n seterrorobj(L, status, oldtop);\n L.ci = ci;\n L.allowhook = ci.callstatus & lstate.CIST_OAH; /* restore original 'allowhook' */\n L.nny = 0; /* should be zero to be yieldable */\n luaD_shrinkstack(L);\n L.errfunc = ci.c_old_errfunc;\n return 1; /* continue running the coroutine */\n};\n\n/*\n** Signal an error in the call to 'lua_resume', not in the execution\n** of the coroutine itself. (Such errors should not be handled by any\n** coroutine error handler and should not kill the coroutine.)\n*/\nconst resume_error = function(L, msg, narg) {\n let ts = luaS_newliteral(L, msg);\n if (narg === 0) {\n lobject.pushsvalue2s(L, ts);\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n } else {\n /* remove args from the stack */\n for (let i=1; i<narg; i++)\n delete L.stack[--L.top];\n lobject.setsvalue2s(L, L.top-1, ts); /* push error message */\n }\n return LUA_ERRRUN;\n};\n\n/*\n** Do the work for 'lua_resume' in protected mode. Most of the work\n** depends on the status of the coroutine: initial state, suspended\n** inside a hook, or regularly suspended (optionally with a continuation\n** function), plus erroneous cases: non-suspended coroutine or dead\n** coroutine.\n*/\nconst resume = function(L, n) {\n let firstArg = L.top - n; /* first argument */\n let ci = L.ci;\n if (L.status === LUA_OK) { /* starting a coroutine? */\n if (!luaD_precall(L, firstArg - 1, LUA_MULTRET)) /* Lua function? */\n lvm.luaV_execute(L); /* call it */\n } else { /* resuming from previous yield */\n lua_assert(L.status === LUA_YIELD);\n L.status = LUA_OK; /* mark that it is running (again) */\n ci.funcOff = ci.extra;\n ci.func = L.stack[ci.funcOff];\n\n if (ci.callstatus & lstate.CIST_LUA) /* yielded inside a hook? */\n lvm.luaV_execute(L); /* just continue running Lua code */\n else { /* 'common' yield */\n if (ci.c_k !== null) { /* does it have a continuation function? */\n n = ci.c_k(L, LUA_YIELD, ci.c_ctx); /* call continuation */\n lapi.api_checknelems(L, n);\n firstArg = L.top - n; /* yield results come from continuation */\n }\n\n luaD_poscall(L, ci, firstArg, n); /* finish 'luaD_precall' */\n }\n\n unroll(L, null); /* run continuation */\n }\n};\n\nconst lua_resume = function(L, from, nargs) {\n let oldnny = L.nny; /* save \"number of non-yieldable\" calls */\n\n if (L.status === LUA_OK) { /* may be starting a coroutine */\n if (L.ci !== L.base_ci) /* not in base level? */\n return resume_error(L, \"cannot resume non-suspended coroutine\", nargs);\n } else if (L.status !== LUA_YIELD)\n return resume_error(L, \"cannot resume dead coroutine\", nargs);\n\n L.nCcalls = from ? from.nCcalls + 1 : 1;\n if (L.nCcalls >= LUAI_MAXCCALLS)\n return resume_error(L, \"JS stack overflow\", nargs);\n\n L.nny = 0; /* allow yields */\n\n lapi.api_checknelems(L, L.status === LUA_OK ? nargs + 1: nargs);\n\n let status = luaD_rawrunprotected(L, resume, nargs);\n if (status === -1) /* error calling 'lua_resume'? */\n status = LUA_ERRRUN;\n else { /* continue running after recoverable errors */\n while (status > LUA_YIELD && recover(L, status)) {\n /* unroll continuation */\n status = luaD_rawrunprotected(L, unroll, status);\n }\n\n if (status > LUA_YIELD) { /* unrecoverable error? */\n L.status = status; /* mark thread as 'dead' */\n seterrorobj(L, status, L.top); /* push error message */\n L.ci.top = L.top;\n } else\n lua_assert(status === L.status); /* normal end or yield */\n }\n\n L.nny = oldnny; /* restore 'nny' */\n L.nCcalls--;\n lua_assert(L.nCcalls === (from ? from.nCcalls : 0));\n return status;\n};\n\nconst lua_isyieldable = function(L) {\n return L.nny === 0;\n};\n\nconst lua_yieldk = function(L, nresults, ctx, k) {\n let ci = L.ci;\n lapi.api_checknelems(L, nresults);\n\n if (L.nny > 0) {\n if (L !== L.l_G.mainthread)\n ldebug.luaG_runerror(L, to_luastring(\"attempt to yield across a JS-call boundary\", true));\n else\n ldebug.luaG_runerror(L, to_luastring(\"attempt to yield from outside a coroutine\", true));\n }\n\n L.status = LUA_YIELD;\n ci.extra = ci.funcOff; /* save current 'func' */\n if (ci.callstatus & lstate.CIST_LUA) /* inside a hook? */\n api_check(L, k === null, \"hooks cannot continue after yielding\");\n else {\n ci.c_k = k;\n if (k !== null) /* is there a continuation? */\n ci.c_ctx = ctx; /* save context */\n ci.funcOff = L.top - nresults - 1; /* protect stack below results */\n ci.func = L.stack[ci.funcOff];\n luaD_throw(L, LUA_YIELD);\n }\n\n lua_assert(ci.callstatus & lstate.CIST_HOOKED); /* must be inside a hook */\n return 0; /* return to 'luaD_hook' */\n};\n\nconst lua_yield = function(L, n) {\n lua_yieldk(L, n, 0, null);\n};\n\nconst luaD_pcall = function(L, func, u, old_top, ef) {\n let old_ci = L.ci;\n let old_allowhooks = L.allowhook;\n let old_nny = L.nny;\n let old_errfunc = L.errfunc;\n L.errfunc = ef;\n\n let status = luaD_rawrunprotected(L, func, u);\n\n if (status !== LUA_OK) {\n lfunc.luaF_close(L, old_top);\n seterrorobj(L, status, old_top);\n L.ci = old_ci;\n L.allowhook = old_allowhooks;\n L.nny = old_nny;\n luaD_shrinkstack(L);\n }\n\n L.errfunc = old_errfunc;\n\n return status;\n};\n\n/*\n** Similar to 'luaD_call', but does not allow yields during the call\n*/\nconst luaD_callnoyield = function(L, off, nResults) {\n L.nny++;\n luaD_call(L, off, nResults);\n L.nny--;\n};\n\n/*\n** Execute a protected parser.\n*/\nclass SParser {\n constructor(z, name, mode) { /* data to 'f_parser' */\n this.z = z;\n this.buff = new MBuffer(); /* dynamic structure used by the scanner */\n this.dyd = new lparser.Dyndata(); /* dynamic structures used by the parser */\n this.mode = mode;\n this.name = name;\n }\n}\n\nconst checkmode = function(L, mode, x) {\n if (mode && luastring_indexOf(mode, x[0]) === -1) {\n lobject.luaO_pushfstring(L,\n to_luastring(\"attempt to load a %s chunk (mode is '%s')\"), x, mode);\n luaD_throw(L, LUA_ERRSYNTAX);\n }\n};\n\nconst f_parser = function(L, p) {\n let cl;\n let c = p.z.zgetc(); /* read first character */\n if (c === LUA_SIGNATURE[0]) {\n checkmode(L, p.mode, to_luastring(\"binary\", true));\n cl = lundump.luaU_undump(L, p.z, p.name);\n } else {\n checkmode(L, p.mode, to_luastring(\"text\", true));\n cl = lparser.luaY_parser(L, p.z, p.buff, p.dyd, p.name, c);\n }\n\n lua_assert(cl.nupvalues === cl.p.upvalues.length);\n lfunc.luaF_initupvals(L, cl);\n};\n\nconst luaD_protectedparser = function(L, z, name, mode) {\n let p = new SParser(z, name, mode);\n L.nny++; /* cannot yield during parsing */\n let status = luaD_pcall(L, f_parser, p, L.top, L.errfunc);\n L.nny--;\n return status;\n};\n\nmodule.exports.adjust_top = adjust_top;\nmodule.exports.luaD_call = luaD_call;\nmodule.exports.luaD_callnoyield = luaD_callnoyield;\nmodule.exports.luaD_checkstack = luaD_checkstack;\nmodule.exports.luaD_growstack = luaD_growstack;\nmodule.exports.luaD_hook = luaD_hook;\nmodule.exports.luaD_inctop = luaD_inctop;\nmodule.exports.luaD_pcall = luaD_pcall;\nmodule.exports.luaD_poscall = luaD_poscall;\nmodule.exports.luaD_precall = luaD_precall;\nmodule.exports.luaD_protectedparser = luaD_protectedparser;\nmodule.exports.luaD_rawrunprotected = luaD_rawrunprotected;\nmodule.exports.luaD_reallocstack = luaD_reallocstack;\nmodule.exports.luaD_throw = luaD_throw;\nmodule.exports.lua_isyieldable = lua_isyieldable;\nmodule.exports.lua_resume = lua_resume;\nmodule.exports.lua_yield = lua_yield;\nmodule.exports.lua_yieldk = lua_yieldk;\n","\"use strict\";\n\nconst {\n constant_types: {\n LUA_TBOOLEAN,\n LUA_TCCL,\n LUA_TLCF,\n LUA_TLCL,\n LUA_TLIGHTUSERDATA,\n LUA_TLNGSTR,\n LUA_TNIL,\n LUA_TNUMFLT,\n LUA_TNUMINT,\n LUA_TSHRSTR,\n LUA_TTABLE,\n LUA_TTHREAD,\n LUA_TUSERDATA\n },\n to_luastring\n} = require('./defs.js');\nconst { lua_assert } = require('./llimits.js');\nconst ldebug = require('./ldebug.js');\nconst lobject = require('./lobject.js');\nconst {\n luaS_hashlongstr,\n TString\n} = require('./lstring.js');\nconst lstate = require('./lstate.js');\n\n/* used to prevent conflicts with lightuserdata keys */\nlet lightuserdata_hashes = new WeakMap();\nconst get_lightuserdata_hash = function(v) {\n let hash = lightuserdata_hashes.get(v);\n if (!hash) {\n /* Hash should be something unique that is a valid WeakMap key\n so that it ends up in dead_weak when removed from a table */\n hash = {};\n lightuserdata_hashes.set(v, hash);\n }\n return hash;\n};\n\nconst table_hash = function(L, key) {\n switch(key.type) {\n case LUA_TNIL:\n return ldebug.luaG_runerror(L, to_luastring(\"table index is nil\", true));\n case LUA_TNUMFLT:\n if (isNaN(key.value))\n return ldebug.luaG_runerror(L, to_luastring(\"table index is NaN\", true));\n /* fall through */\n case LUA_TNUMINT: /* takes advantage of floats and integers being same in JS */\n case LUA_TBOOLEAN:\n case LUA_TTABLE:\n case LUA_TLCL:\n case LUA_TLCF:\n case LUA_TCCL:\n case LUA_TUSERDATA:\n case LUA_TTHREAD:\n return key.value;\n case LUA_TSHRSTR:\n case LUA_TLNGSTR:\n return luaS_hashlongstr(key.tsvalue());\n case LUA_TLIGHTUSERDATA: {\n let v = key.value;\n switch(typeof v) {\n case \"string\":\n /* possible conflict with LUA_TSTRING.\n prefix this string with \"*\" so they don't clash */\n return \"*\" + v;\n case \"number\":\n /* possible conflict with LUA_TNUMBER.\n turn into string and prefix with \"#\" to avoid clash with other strings */\n return \"#\" + v;\n case \"boolean\":\n /* possible conflict with LUA_TBOOLEAN. use strings ?true and ?false instead */\n return v?\"?true\":\"?false\";\n case \"function\":\n /* possible conflict with LUA_TLCF.\n indirect via a weakmap */\n return get_lightuserdata_hash(v);\n case \"object\":\n /* v could be a lua_State, CClosure, LClosure, Table or Userdata from this state as returned by lua_topointer */\n if ((v instanceof lstate.lua_State && v.l_G === L.l_G) ||\n v instanceof Table ||\n v instanceof lobject.Udata ||\n v instanceof lobject.LClosure ||\n v instanceof lobject.CClosure) {\n /* indirect via a weakmap */\n return get_lightuserdata_hash(v);\n }\n /* fall through */\n default:\n return v;\n }\n }\n default:\n throw new Error(\"unknown key type: \" + key.type);\n }\n};\n\nclass Table {\n constructor(L) {\n this.id = L.l_G.id_counter++;\n this.strong = new Map();\n this.dead_strong = new Map();\n this.dead_weak = void 0; /* initialised when needed */\n this.f = void 0; /* first entry */\n this.l = void 0; /* last entry */\n this.metatable = null;\n this.flags = ~0;\n }\n}\n\nconst invalidateTMcache = function(t) {\n t.flags = 0;\n};\n\nconst add = function(t, hash, key, value) {\n t.dead_strong.clear();\n t.dead_weak = void 0;\n let prev = null;\n let entry = {\n key: key,\n value: value,\n p: prev = t.l,\n n: void 0\n };\n if (!t.f) t.f = entry;\n if (prev) prev.n = entry;\n t.strong.set(hash, entry);\n t.l = entry;\n};\n\nconst is_valid_weakmap_key = function(k) {\n return typeof k === 'object' ? k !== null : typeof k === 'function';\n};\n\n/* Move out of 'strong' part and into 'dead' part. */\nconst mark_dead = function(t, hash) {\n let e = t.strong.get(hash);\n if (e) {\n e.key.setdeadvalue();\n e.value = void 0;\n let next = e.n;\n let prev = e.p;\n e.p = void 0; /* no need to know previous item any more */\n if(prev) prev.n = next;\n if(next) next.p = prev;\n if(t.f === e) t.f = next;\n if(t.l === e) t.l = prev;\n t.strong.delete(hash);\n if (is_valid_weakmap_key(hash)) {\n if (!t.dead_weak) t.dead_weak = new WeakMap();\n t.dead_weak.set(hash, e);\n } else {\n /* can't be used as key in weakmap */\n t.dead_strong.set(hash, e);\n }\n }\n};\n\nconst luaH_new = function(L) {\n return new Table(L);\n};\n\nconst getgeneric = function(t, hash) {\n let v = t.strong.get(hash);\n return v ? v.value : lobject.luaO_nilobject;\n};\n\nconst luaH_getint = function(t, key) {\n lua_assert(typeof key == \"number\" && (key|0) === key);\n return getgeneric(t, key);\n};\n\nconst luaH_getstr = function(t, key) {\n lua_assert(key instanceof TString);\n return getgeneric(t, luaS_hashlongstr(key));\n};\n\nconst luaH_get = function(L, t, key) {\n lua_assert(key instanceof lobject.TValue);\n if (key.ttisnil() || (key.ttisfloat() && isNaN(key.value)))\n return lobject.luaO_nilobject;\n return getgeneric(t, table_hash(L, key));\n};\n\nconst luaH_setint = function(t, key, value) {\n lua_assert(typeof key == \"number\" && (key|0) === key && value instanceof lobject.TValue);\n let hash = key; /* table_hash known result */\n if (value.ttisnil()) {\n mark_dead(t, hash);\n return;\n }\n let e = t.strong.get(hash);\n if (e) {\n let tv = e.value;\n tv.setfrom(value);\n } else {\n let k = new lobject.TValue(LUA_TNUMINT, key);\n let v = new lobject.TValue(value.type, value.value);\n add(t, hash, k, v);\n }\n};\n\nconst luaH_setfrom = function(L, t, key, value) {\n lua_assert(key instanceof lobject.TValue);\n let hash = table_hash(L, key);\n if (value.ttisnil()) { /* delete */\n mark_dead(t, hash);\n return;\n }\n\n let e = t.strong.get(hash);\n if (e) {\n e.value.setfrom(value);\n } else {\n let k;\n let kv = key.value;\n if ((key.ttisfloat() && (kv|0) === kv)) { /* does index fit in an integer? */\n /* insert it as an integer */\n k = new lobject.TValue(LUA_TNUMINT, kv);\n } else {\n k = new lobject.TValue(key.type, kv);\n }\n let v = new lobject.TValue(value.type, value.value);\n add(t, hash, k, v);\n }\n};\n\n/*\n** Try to find a boundary in table 't'. A 'boundary' is an integer index\n** such that t[i] is non-nil and t[i+1] is nil (and 0 if t[1] is nil).\n*/\nconst luaH_getn = function(t) {\n let i = 0;\n let j = t.strong.size + 1; /* use known size of Map to bound search */\n /* now do a binary search between them */\n while (j - i > 1) {\n let m = Math.floor((i+j)/2);\n if (luaH_getint(t, m).ttisnil()) j = m;\n else i = m;\n }\n return i;\n};\n\nconst luaH_next = function(L, table, keyI) {\n let keyO = L.stack[keyI];\n\n let entry;\n if (keyO.type === LUA_TNIL) {\n entry = table.f;\n if (!entry)\n return false;\n } else {\n /* First find current key */\n let hash = table_hash(L, keyO);\n /* Look in main part of table */\n entry = table.strong.get(hash);\n if (entry) {\n entry = entry.n;\n if (!entry)\n return false;\n } else {\n /* Try dead keys */\n entry = (table.dead_weak && table.dead_weak.get(hash)) || table.dead_strong.get(hash);\n if (!entry)\n /* item not in table */\n return ldebug.luaG_runerror(L, to_luastring(\"invalid key to 'next'\"));\n /* Iterate until either out of keys, or until finding a non-dead key */\n do {\n entry = entry.n;\n if (!entry)\n return false;\n } while (entry.key.ttisdeadkey());\n }\n }\n lobject.setobj2s(L, keyI, entry.key);\n lobject.setobj2s(L, keyI+1, entry.value);\n return true;\n};\n\nmodule.exports.invalidateTMcache = invalidateTMcache;\nmodule.exports.luaH_get = luaH_get;\nmodule.exports.luaH_getint = luaH_getint;\nmodule.exports.luaH_getn = luaH_getn;\nmodule.exports.luaH_getstr = luaH_getstr;\nmodule.exports.luaH_setfrom = luaH_setfrom;\nmodule.exports.luaH_setint = luaH_setint;\nmodule.exports.luaH_new = luaH_new;\nmodule.exports.luaH_next = luaH_next;\nmodule.exports.Table = Table;\n","\"use strict\";\n\nconst {\n is_luastring,\n luastring_eq,\n luastring_from,\n to_luastring\n} = require('./defs.js');\nconst { lua_assert } = require(\"./llimits.js\");\n\nclass TString {\n\n constructor(L, str) {\n this.hash = null;\n this.realstring = str;\n }\n\n getstr() {\n return this.realstring;\n }\n\n tsslen() {\n return this.realstring.length;\n }\n\n}\n\nconst luaS_eqlngstr = function(a, b) {\n lua_assert(a instanceof TString);\n lua_assert(b instanceof TString);\n return a == b || luastring_eq(a.realstring, b.realstring);\n};\n\n/* converts strings (arrays) to a consistent map key\n make sure this doesn't conflict with any of the anti-collision strategies in ltable */\nconst luaS_hash = function(str) {\n lua_assert(is_luastring(str));\n let len = str.length;\n let s = \"|\";\n for (let i=0; i<len; i++)\n s += str[i].toString(16);\n return s;\n};\n\nconst luaS_hashlongstr = function(ts) {\n lua_assert(ts instanceof TString);\n if(ts.hash === null) {\n ts.hash = luaS_hash(ts.getstr());\n }\n return ts.hash;\n};\n\n/* variant that takes ownership of array */\nconst luaS_bless = function(L, str) {\n lua_assert(str instanceof Uint8Array);\n return new TString(L, str);\n};\n\n/* makes a copy */\nconst luaS_new = function(L, str) {\n return luaS_bless(L, luastring_from(str));\n};\n\n/* takes a js string */\nconst luaS_newliteral = function(L, str) {\n return luaS_bless(L, to_luastring(str));\n};\n\nmodule.exports.luaS_eqlngstr = luaS_eqlngstr;\nmodule.exports.luaS_hash = luaS_hash;\nmodule.exports.luaS_hashlongstr = luaS_hashlongstr;\nmodule.exports.luaS_bless = luaS_bless;\nmodule.exports.luaS_new = luaS_new;\nmodule.exports.luaS_newliteral = luaS_newliteral;\nmodule.exports.TString = TString;\n","\"use strict\";\n\nconst {\n LUA_HOOKCOUNT,\n LUA_HOOKLINE,\n LUA_MASKCOUNT,\n LUA_MASKLINE,\n constant_types: {\n LUA_TBOOLEAN,\n LUA_TNIL,\n LUA_TTABLE\n },\n thread_status: {\n LUA_ERRRUN,\n LUA_YIELD\n },\n from_userstring,\n luastring_eq,\n luastring_indexOf,\n to_luastring\n} = require('./defs.js');\nconst {\n api_check,\n lua_assert\n} = require('./llimits.js');\nconst { LUA_IDSIZE } = require('./luaconf.js');\nconst lapi = require('./lapi.js');\nconst ldo = require('./ldo.js');\nconst lfunc = require('./lfunc.js');\nconst llex = require('./llex.js');\nconst lobject = require('./lobject.js');\nconst lopcodes = require('./lopcodes.js');\nconst lstate = require('./lstate.js');\nconst ltable = require('./ltable.js');\nconst ltm = require('./ltm.js');\nconst lvm = require('./lvm.js');\n\nconst currentpc = function(ci) {\n lua_assert(ci.callstatus & lstate.CIST_LUA);\n return ci.l_savedpc - 1;\n};\n\nconst currentline = function(ci) {\n return ci.func.value.p.lineinfo.length !== 0 ? ci.func.value.p.lineinfo[currentpc(ci)] : -1;\n};\n\n/*\n** If function yielded, its 'func' can be in the 'extra' field. The\n** next function restores 'func' to its correct value for debugging\n** purposes. (It exchanges 'func' and 'extra'; so, when called again,\n** after debugging, it also \"re-restores\" ** 'func' to its altered value.\n*/\nconst swapextra = function(L) {\n if (L.status === LUA_YIELD) {\n let ci = L.ci; /* get function that yielded */\n let temp = ci.funcOff; /* exchange its 'func' and 'extra' values */\n ci.func = L.stack[ci.extra];\n ci.funcOff = ci.extra;\n ci.extra = temp;\n }\n};\n\nconst lua_sethook = function(L, func, mask, count) {\n if (func === null || mask === 0) { /* turn off hooks? */\n mask = 0;\n func = null;\n }\n if (L.ci.callstatus & lstate.CIST_LUA)\n L.oldpc = L.ci.l_savedpc;\n L.hook = func;\n L.basehookcount = count;\n L.hookcount = L.basehookcount;\n L.hookmask = mask;\n};\n\nconst lua_gethook = function(L) {\n return L.hook;\n};\n\n\nconst lua_gethookmask = function(L) {\n return L.hookmask;\n};\n\n\nconst lua_gethookcount = function(L) {\n return L.basehookcount;\n};\n\nconst lua_getstack = function(L, level, ar) {\n let ci;\n let status;\n if (level < 0) return 0; /* invalid (negative) level */\n for (ci = L.ci; level > 0 && ci !== L.base_ci; ci = ci.previous)\n level--;\n if (level === 0 && ci !== L.base_ci) { /* level found? */\n status = 1;\n ar.i_ci = ci;\n } else\n status = 0; /* no such level */\n return status;\n};\n\nconst upvalname = function(p, uv) {\n lua_assert(uv < p.upvalues.length);\n let s = p.upvalues[uv].name;\n if (s === null) return to_luastring(\"?\", true);\n return s.getstr();\n};\n\nconst findvararg = function(ci, n) {\n let nparams = ci.func.value.p.numparams;\n if (n >= ci.l_base - ci.funcOff - nparams)\n return null; /* no such vararg */\n else {\n return {\n pos: ci.funcOff + nparams + n,\n name: to_luastring(\"(*vararg)\", true) /* generic name for any vararg */\n };\n }\n};\n\nconst findlocal = function(L, ci, n) {\n let base, name = null;\n\n if (ci.callstatus & lstate.CIST_LUA) {\n if (n < 0) /* access to vararg values? */\n return findvararg(ci, -n);\n else {\n base = ci.l_base;\n name = lfunc.luaF_getlocalname(ci.func.value.p, n, currentpc(ci));\n }\n } else\n base = ci.funcOff + 1;\n\n if (name === null) { /* no 'standard' name? */\n let limit = ci === L.ci ? L.top : ci.next.funcOff;\n if (limit - base >= n && n > 0) /* is 'n' inside 'ci' stack? */\n name = to_luastring(\"(*temporary)\", true); /* generic name for any valid slot */\n else\n return null; /* no name */\n }\n return {\n pos: base + (n - 1),\n name: name\n };\n};\n\nconst lua_getlocal = function(L, ar, n) {\n let name;\n swapextra(L);\n if (ar === null) { /* information about non-active function? */\n if (!L.stack[L.top - 1].ttisLclosure()) /* not a Lua function? */\n name = null;\n else /* consider live variables at function start (parameters) */\n name = lfunc.luaF_getlocalname(L.stack[L.top - 1].value.p, n, 0);\n } else { /* active function; get information through 'ar' */\n let local = findlocal(L, ar.i_ci, n);\n if (local) {\n name = local.name;\n lobject.pushobj2s(L, L.stack[local.pos]);\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n } else {\n name = null;\n }\n }\n swapextra(L);\n return name;\n};\n\nconst lua_setlocal = function(L, ar, n) {\n let name;\n swapextra(L);\n let local = findlocal(L, ar.i_ci, n);\n if (local) {\n name = local.name;\n lobject.setobjs2s(L, local.pos, L.top - 1);\n delete L.stack[--L.top]; /* pop value */\n } else {\n name = null;\n }\n swapextra(L);\n return name;\n};\n\nconst funcinfo = function(ar, cl) {\n if (cl === null || cl instanceof lobject.CClosure) {\n ar.source = to_luastring(\"=[JS]\", true);\n ar.linedefined = -1;\n ar.lastlinedefined = -1;\n ar.what = to_luastring(\"J\", true);\n } else {\n let p = cl.p;\n ar.source = p.source ? p.source.getstr() : to_luastring(\"=?\", true);\n ar.linedefined = p.linedefined;\n ar.lastlinedefined = p.lastlinedefined;\n ar.what = ar.linedefined === 0 ? to_luastring(\"main\", true) : to_luastring(\"Lua\", true);\n }\n\n ar.short_src = lobject.luaO_chunkid(ar.source, LUA_IDSIZE);\n};\n\nconst collectvalidlines = function(L, f) {\n if (f === null || f instanceof lobject.CClosure) {\n L.stack[L.top] = new lobject.TValue(LUA_TNIL, null);\n lapi.api_incr_top(L);\n } else {\n let lineinfo = f.p.lineinfo;\n let t = ltable.luaH_new(L);\n L.stack[L.top] = new lobject.TValue(LUA_TTABLE, t);\n lapi.api_incr_top(L);\n let v = new lobject.TValue(LUA_TBOOLEAN, true);\n for (let i = 0; i < lineinfo.length; i++)\n ltable.luaH_setint(t, lineinfo[i], v);\n }\n};\n\nconst getfuncname = function(L, ci) {\n let r = {\n name: null,\n funcname: null\n };\n if (ci === null)\n return null;\n else if (ci.callstatus & lstate.CIST_FIN) { /* is this a finalizer? */\n r.name = to_luastring(\"__gc\", true);\n r.funcname = to_luastring(\"metamethod\", true); /* report it as such */\n return r;\n }\n /* calling function is a known Lua function? */\n else if (!(ci.callstatus & lstate.CIST_TAIL) && ci.previous.callstatus & lstate.CIST_LUA)\n return funcnamefromcode(L, ci.previous);\n else return null; /* no way to find a name */\n};\n\nconst auxgetinfo = function(L, what, ar, f, ci) {\n let status = 1;\n for (; what.length > 0; what = what.subarray(1)) {\n switch (what[0]) {\n case 83 /* ('S').charCodeAt(0) */: {\n funcinfo(ar, f);\n break;\n }\n case 108 /* ('l').charCodeAt(0) */: {\n ar.currentline = ci && ci.callstatus & lstate.CIST_LUA ? currentline(ci) : -1;\n break;\n }\n case 117 /* ('u').charCodeAt(0) */: {\n ar.nups = f === null ? 0 : f.nupvalues;\n if (f === null || f instanceof lobject.CClosure) {\n ar.isvararg = true;\n ar.nparams = 0;\n } else {\n ar.isvararg = f.p.is_vararg;\n ar.nparams = f.p.numparams;\n }\n break;\n }\n case 116 /* ('t').charCodeAt(0) */: {\n ar.istailcall = ci ? ci.callstatus & lstate.CIST_TAIL : 0;\n break;\n }\n case 110 /* ('n').charCodeAt(0) */: {\n let r = getfuncname(L, ci);\n if (r === null) {\n ar.namewhat = to_luastring(\"\", true);\n ar.name = null;\n } else {\n ar.namewhat = r.funcname;\n ar.name = r.name;\n }\n break;\n }\n case 76 /* ('L').charCodeAt(0) */:\n case 102 /* ('f').charCodeAt(0) */: /* handled by lua_getinfo */\n break;\n default: status = 0; /* invalid option */\n }\n }\n\n return status;\n};\n\nconst lua_getinfo = function(L, what, ar) {\n what = from_userstring(what);\n let status, cl, ci, func;\n swapextra(L);\n if (what[0] === 62 /* ('>').charCodeAt(0) */) {\n ci = null;\n func = L.stack[L.top - 1];\n api_check(L, func.ttisfunction(), \"function expected\");\n what = what.subarray(1); /* skip the '>' */\n L.top--; /* pop function */\n } else {\n ci = ar.i_ci;\n func = ci.func;\n lua_assert(ci.func.ttisfunction());\n }\n\n cl = func.ttisclosure() ? func.value : null;\n status = auxgetinfo(L, what, ar, cl, ci);\n if (luastring_indexOf(what, 102 /* ('f').charCodeAt(0) */) >= 0) {\n lobject.pushobj2s(L, func);\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n }\n\n swapextra(L);\n if (luastring_indexOf(what, 76 /* ('L').charCodeAt(0) */) >= 0)\n collectvalidlines(L, cl);\n\n return status;\n};\n\nconst kname = function(p, pc, c) {\n let r = {\n name: null,\n funcname: null\n };\n\n if (lopcodes.ISK(c)) { /* is 'c' a constant? */\n let kvalue = p.k[lopcodes.INDEXK(c)];\n if (kvalue.ttisstring()) { /* literal constant? */\n r.name = kvalue.svalue(); /* it is its own name */\n return r;\n }\n /* else no reasonable name found */\n } else { /* 'c' is a register */\n let what = getobjname(p, pc, c); /* search for 'c' */\n if (what && what.funcname[0] === 99 /* ('c').charCodeAt(0) */) { /* found a constant name? */\n return what; /* 'name' already filled */\n }\n /* else no reasonable name found */\n }\n r.name = to_luastring(\"?\", true);\n return r; /* no reasonable name found */\n};\n\nconst filterpc = function(pc, jmptarget) {\n if (pc < jmptarget) /* is code conditional (inside a jump)? */\n return -1; /* cannot know who sets that register */\n else return pc; /* current position sets that register */\n};\n\n/*\n** try to find last instruction before 'lastpc' that modified register 'reg'\n*/\nconst findsetreg = function(p, lastpc, reg) {\n let setreg = -1; /* keep last instruction that changed 'reg' */\n let jmptarget = 0; /* any code before this address is conditional */\n let OCi = lopcodes.OpCodesI;\n for (let pc = 0; pc < lastpc; pc++) {\n let i = p.code[pc];\n let a = i.A;\n switch (i.opcode) {\n case OCi.OP_LOADNIL: {\n let b = i.B;\n if (a <= reg && reg <= a + b) /* set registers from 'a' to 'a+b' */\n setreg = filterpc(pc, jmptarget);\n break;\n }\n case OCi.OP_TFORCALL: {\n if (reg >= a + 2) /* affect all regs above its base */\n setreg = filterpc(pc, jmptarget);\n break;\n }\n case OCi.OP_CALL:\n case OCi.OP_TAILCALL: {\n if (reg >= a) /* affect all registers above base */\n setreg = filterpc(pc, jmptarget);\n break;\n }\n case OCi.OP_JMP: {\n let b = i.sBx;\n let dest = pc + 1 + b;\n /* jump is forward and do not skip 'lastpc'? */\n if (pc < dest && dest <= lastpc) {\n if (dest > jmptarget)\n jmptarget = dest; /* update 'jmptarget' */\n }\n break;\n }\n default:\n if (lopcodes.testAMode(i.opcode) && reg === a)\n setreg = filterpc(pc, jmptarget);\n break;\n }\n }\n\n return setreg;\n};\n\n\nconst getobjname = function(p, lastpc, reg) {\n let r = {\n name: lfunc.luaF_getlocalname(p, reg + 1, lastpc),\n funcname: null\n };\n\n if (r.name) { /* is a local? */\n r.funcname = to_luastring(\"local\", true);\n return r;\n }\n\n /* else try symbolic execution */\n let pc = findsetreg(p, lastpc, reg);\n let OCi = lopcodes.OpCodesI;\n if (pc !== -1) { /* could find instruction? */\n let i = p.code[pc];\n switch (i.opcode) {\n case OCi.OP_MOVE: {\n let b = i.B; /* move from 'b' to 'a' */\n if (b < i.A)\n return getobjname(p, pc, b); /* get name for 'b' */\n break;\n }\n case OCi.OP_GETTABUP:\n case OCi.OP_GETTABLE: {\n let k = i.C; /* key index */\n let t = i.B; /* table index */\n let vn = i.opcode === OCi.OP_GETTABLE ? lfunc.luaF_getlocalname(p, t + 1, pc) : upvalname(p, t);\n r.name = kname(p, pc, k).name;\n r.funcname = (vn && luastring_eq(vn, llex.LUA_ENV)) ? to_luastring(\"global\", true) : to_luastring(\"field\", true);\n return r;\n }\n case OCi.OP_GETUPVAL: {\n r.name = upvalname(p, i.B);\n r.funcname = to_luastring(\"upvalue\", true);\n return r;\n }\n case OCi.OP_LOADK:\n case OCi.OP_LOADKX: {\n let b = i.opcode === OCi.OP_LOADK ? i.Bx : p.code[pc + 1].Ax;\n if (p.k[b].ttisstring()) {\n r.name = p.k[b].svalue();\n r.funcname = to_luastring(\"constant\", true);\n return r;\n }\n break;\n }\n case OCi.OP_SELF: {\n let k = i.C;\n r.name = kname(p, pc, k).name;\n r.funcname = to_luastring(\"method\", true);\n return r;\n }\n default: break;\n }\n }\n\n return null;\n};\n\n/*\n** Try to find a name for a function based on the code that called it.\n** (Only works when function was called by a Lua function.)\n** Returns what the name is (e.g., \"for iterator\", \"method\",\n** \"metamethod\") and sets '*name' to point to the name.\n*/\nconst funcnamefromcode = function(L, ci) {\n let r = {\n name: null,\n funcname: null\n };\n\n let tm = 0; /* (initial value avoids warnings) */\n let p = ci.func.value.p; /* calling function */\n let pc = currentpc(ci); /* calling instruction index */\n let i = p.code[pc]; /* calling instruction */\n let OCi = lopcodes.OpCodesI;\n\n if (ci.callstatus & lstate.CIST_HOOKED) {\n r.name = to_luastring(\"?\", true);\n r.funcname = to_luastring(\"hook\", true);\n return r;\n }\n\n switch (i.opcode) {\n case OCi.OP_CALL:\n case OCi.OP_TAILCALL:\n return getobjname(p, pc, i.A); /* get function name */\n case OCi.OP_TFORCALL:\n r.name = to_luastring(\"for iterator\", true);\n r.funcname = to_luastring(\"for iterator\", true);\n return r;\n /* other instructions can do calls through metamethods */\n case OCi.OP_SELF:\n case OCi.OP_GETTABUP:\n case OCi.OP_GETTABLE:\n tm = ltm.TMS.TM_INDEX;\n break;\n case OCi.OP_SETTABUP:\n case OCi.OP_SETTABLE:\n tm = ltm.TMS.TM_NEWINDEX;\n break;\n case OCi.OP_ADD: tm = ltm.TMS.TM_ADD; break;\n case OCi.OP_SUB: tm = ltm.TMS.TM_SUB; break;\n case OCi.OP_MUL: tm = ltm.TMS.TM_MUL; break;\n case OCi.OP_MOD: tm = ltm.TMS.TM_MOD; break;\n case OCi.OP_POW: tm = ltm.TMS.TM_POW; break;\n case OCi.OP_DIV: tm = ltm.TMS.TM_DIV; break;\n case OCi.OP_IDIV: tm = ltm.TMS.TM_IDIV; break;\n case OCi.OP_BAND: tm = ltm.TMS.TM_BAND; break;\n case OCi.OP_BOR: tm = ltm.TMS.TM_BOR; break;\n case OCi.OP_BXOR: tm = ltm.TMS.TM_BXOR; break;\n case OCi.OP_SHL: tm = ltm.TMS.TM_SHL; break;\n case OCi.OP_SHR: tm = ltm.TMS.TM_SHR; break;\n case OCi.OP_UNM: tm = ltm.TMS.TM_UNM; break;\n case OCi.OP_BNOT: tm = ltm.TMS.TM_BNOT; break;\n case OCi.OP_LEN: tm = ltm.TMS.TM_LEN; break;\n case OCi.OP_CONCAT: tm = ltm.TMS.TM_CONCAT; break;\n case OCi.OP_EQ: tm = ltm.TMS.TM_EQ; break;\n case OCi.OP_LT: tm = ltm.TMS.TM_LT; break;\n case OCi.OP_LE: tm = ltm.TMS.TM_LE; break;\n default:\n return null; /* cannot find a reasonable name */\n }\n\n r.name = L.l_G.tmname[tm].getstr();\n r.funcname = to_luastring(\"metamethod\", true);\n return r;\n};\n\nconst isinstack = function(L, ci, o) {\n for (let i = ci.l_base; i < ci.top; i++) {\n if (L.stack[i] === o)\n return i;\n }\n\n return false;\n};\n\n/*\n** Checks whether value 'o' came from an upvalue. (That can only happen\n** with instructions OP_GETTABUP/OP_SETTABUP, which operate directly on\n** upvalues.)\n*/\nconst getupvalname = function(L, ci, o) {\n let c = ci.func.value;\n for (let i = 0; i < c.nupvalues; i++) {\n if (c.upvals[i] === o) {\n return {\n name: upvalname(c.p, i),\n funcname: to_luastring('upvalue', true)\n };\n }\n }\n\n return null;\n};\n\nconst varinfo = function(L, o) {\n let ci = L.ci;\n let kind = null;\n if (ci.callstatus & lstate.CIST_LUA) {\n kind = getupvalname(L, ci, o); /* check whether 'o' is an upvalue */\n let stkid = isinstack(L, ci, o);\n if (!kind && stkid) /* no? try a register */\n kind = getobjname(ci.func.value.p, currentpc(ci), stkid - ci.l_base);\n }\n\n return kind ? lobject.luaO_pushfstring(L, to_luastring(\" (%s '%s')\", true), kind.funcname, kind.name) : to_luastring(\"\", true);\n};\n\nconst luaG_typeerror = function(L, o, op) {\n let t = ltm.luaT_objtypename(L, o);\n luaG_runerror(L, to_luastring(\"attempt to %s a %s value%s\", true), op, t, varinfo(L, o));\n};\n\nconst luaG_concaterror = function(L, p1, p2) {\n if (p1.ttisstring() || lvm.cvt2str(p1)) p1 = p2;\n luaG_typeerror(L, p1, to_luastring('concatenate', true));\n};\n\n/*\n** Error when both values are convertible to numbers, but not to integers\n*/\nconst luaG_opinterror = function(L, p1, p2, msg) {\n if (lvm.tonumber(p1) === false)\n p2 = p1;\n luaG_typeerror(L, p2, msg);\n};\n\nconst luaG_ordererror = function(L, p1, p2) {\n let t1 = ltm.luaT_objtypename(L, p1);\n let t2 = ltm.luaT_objtypename(L, p2);\n if (luastring_eq(t1, t2))\n luaG_runerror(L, to_luastring(\"attempt to compare two %s values\", true), t1);\n else\n luaG_runerror(L, to_luastring(\"attempt to compare %s with %s\", true), t1, t2);\n};\n\n/* add src:line information to 'msg' */\nconst luaG_addinfo = function(L, msg, src, line) {\n let buff;\n if (src)\n buff = lobject.luaO_chunkid(src.getstr(), LUA_IDSIZE);\n else\n buff = to_luastring(\"?\", true);\n\n return lobject.luaO_pushfstring(L, to_luastring(\"%s:%d: %s\", true), buff, line, msg);\n};\n\nconst luaG_runerror = function(L, fmt, ...argp) {\n let ci = L.ci;\n let msg = lobject.luaO_pushvfstring(L, fmt, argp);\n if (ci.callstatus & lstate.CIST_LUA) /* if Lua function, add source:line information */\n luaG_addinfo(L, msg, ci.func.value.p.source, currentline(ci));\n luaG_errormsg(L);\n};\n\nconst luaG_errormsg = function(L) {\n if (L.errfunc !== 0) { /* is there an error handling function? */\n let errfunc = L.errfunc;\n lobject.pushobj2s(L, L.stack[L.top - 1]); /* move argument */\n lobject.setobjs2s(L, L.top - 2, errfunc); /* push function */\n ldo.luaD_callnoyield(L, L.top - 2, 1);\n }\n\n ldo.luaD_throw(L, LUA_ERRRUN);\n};\n\n/*\n** Error when both values are convertible to numbers, but not to integers\n*/\nconst luaG_tointerror = function(L, p1, p2) {\n let temp = lvm.tointeger(p1);\n if (temp === false)\n p2 = p1;\n luaG_runerror(L, to_luastring(\"number%s has no integer representation\", true), varinfo(L, p2));\n};\n\nconst luaG_traceexec = function(L) {\n let ci = L.ci;\n let mask = L.hookmask;\n let counthook = (--L.hookcount === 0 && (mask & LUA_MASKCOUNT));\n if (counthook)\n L.hookcount = L.basehookcount; /* reset count */\n else if (!(mask & LUA_MASKLINE))\n return; /* no line hook and count != 0; nothing to be done */\n if (ci.callstatus & lstate.CIST_HOOKYIELD) { /* called hook last time? */\n ci.callstatus &= ~lstate.CIST_HOOKYIELD; /* erase mark */\n return; /* do not call hook again (VM yielded, so it did not move) */\n }\n if (counthook)\n ldo.luaD_hook(L, LUA_HOOKCOUNT, -1); /* call count hook */\n if (mask & LUA_MASKLINE) {\n let p = ci.func.value.p;\n let npc = ci.l_savedpc - 1; // pcRel(ci.u.l.savedpc, p);\n let newline = p.lineinfo.length !== 0 ? p.lineinfo[npc] : -1;\n if (npc === 0 || /* call linehook when enter a new function, */\n ci.l_savedpc <= L.oldpc || /* when jump back (loop), or when */\n newline !== (p.lineinfo.length !== 0 ? p.lineinfo[L.oldpc - 1] : -1)) /* enter a new line */\n ldo.luaD_hook(L, LUA_HOOKLINE, newline); /* call line hook */\n }\n L.oldpc = ci.l_savedpc;\n if (L.status === LUA_YIELD) { /* did hook yield? */\n if (counthook)\n L.hookcount = 1; /* undo decrement to zero */\n ci.l_savedpc--; /* undo increment (resume will increment it again) */\n ci.callstatus |= lstate.CIST_HOOKYIELD; /* mark that it yielded */\n ci.funcOff = L.top - 1; /* protect stack below results */\n ci.func = L.stack[ci.funcOff];\n ldo.luaD_throw(L, LUA_YIELD);\n }\n};\n\nmodule.exports.luaG_addinfo = luaG_addinfo;\nmodule.exports.luaG_concaterror = luaG_concaterror;\nmodule.exports.luaG_errormsg = luaG_errormsg;\nmodule.exports.luaG_opinterror = luaG_opinterror;\nmodule.exports.luaG_ordererror = luaG_ordererror;\nmodule.exports.luaG_runerror = luaG_runerror;\nmodule.exports.luaG_tointerror = luaG_tointerror;\nmodule.exports.luaG_traceexec = luaG_traceexec;\nmodule.exports.luaG_typeerror = luaG_typeerror;\nmodule.exports.lua_gethook = lua_gethook;\nmodule.exports.lua_gethookcount = lua_gethookcount;\nmodule.exports.lua_gethookmask = lua_gethookmask;\nmodule.exports.lua_getinfo = lua_getinfo;\nmodule.exports.lua_getlocal = lua_getlocal;\nmodule.exports.lua_getstack = lua_getstack;\nmodule.exports.lua_sethook = lua_sethook;\nmodule.exports.lua_setlocal = lua_setlocal;\n","\"use strict\";\n\nconst {\n LUA_MINSTACK,\n LUA_RIDX_GLOBALS,\n LUA_RIDX_MAINTHREAD,\n constant_types: {\n LUA_NUMTAGS,\n LUA_TNIL,\n LUA_TTABLE,\n LUA_TTHREAD\n },\n thread_status: {\n LUA_OK\n }\n} = require('./defs.js');\nconst lobject = require('./lobject.js');\nconst ldo = require('./ldo.js');\nconst lapi = require('./lapi.js');\nconst ltable = require('./ltable.js');\nconst ltm = require('./ltm.js');\n\nconst EXTRA_STACK = 5;\n\nconst BASIC_STACK_SIZE = 2 * LUA_MINSTACK;\n\nclass CallInfo {\n\n constructor() {\n this.func = null;\n this.funcOff = NaN;\n this.top = NaN;\n this.previous = null;\n this.next = null;\n\n /* only for Lua functions */\n this.l_base = NaN; /* base for this function */\n this.l_code = null; /* reference to this.func.p.code */\n this.l_savedpc = NaN; /* offset into l_code */\n /* only for JS functions */\n this.c_k = null; /* continuation in case of yields */\n this.c_old_errfunc = null;\n this.c_ctx = null; /* context info. in case of yields */\n\n this.nresults = NaN;\n this.callstatus = NaN;\n }\n\n}\n\nclass lua_State {\n\n constructor(g) {\n this.id = g.id_counter++;\n\n this.base_ci = new CallInfo(); /* CallInfo for first level (C calling Lua) */\n this.top = NaN; /* first free slot in the stack */\n this.stack_last = NaN; /* last free slot in the stack */\n this.oldpc = NaN; /* last pc traced */\n\n /* preinit_thread */\n this.l_G = g;\n this.stack = null;\n this.ci = null;\n this.errorJmp = null;\n this.nCcalls = 0;\n this.hook = null;\n this.hookmask = 0;\n this.basehookcount = 0;\n this.allowhook = 1;\n this.hookcount = this.basehookcount;\n this.nny = 1;\n this.status = LUA_OK;\n this.errfunc = 0;\n }\n\n}\n\nclass global_State {\n\n constructor() {\n this.id_counter = 1; /* used to give objects unique ids */\n this.ids = new WeakMap();\n\n this.mainthread = null;\n this.l_registry = new lobject.TValue(LUA_TNIL, null);\n this.panic = null;\n this.atnativeerror = null;\n this.version = null;\n this.tmname = new Array(ltm.TMS.TM_N);\n this.mt = new Array(LUA_NUMTAGS);\n }\n\n}\n\nconst luaE_extendCI = function(L) {\n let ci = new CallInfo();\n L.ci.next = ci;\n ci.previous = L.ci;\n ci.next = null;\n L.ci = ci;\n return ci;\n};\n\nconst luaE_freeCI = function(L) {\n let ci = L.ci;\n ci.next = null;\n};\n\nconst stack_init = function(L1, L) {\n L1.stack = new Array(BASIC_STACK_SIZE);\n L1.top = 0;\n L1.stack_last = BASIC_STACK_SIZE - EXTRA_STACK;\n /* initialize first ci */\n let ci = L1.base_ci;\n ci.next = ci.previous = null;\n ci.callstatus = 0;\n ci.funcOff = L1.top;\n ci.func = L1.stack[L1.top];\n L1.stack[L1.top++] = new lobject.TValue(LUA_TNIL, null);\n ci.top = L1.top + LUA_MINSTACK;\n L1.ci = ci;\n};\n\nconst freestack = function(L) {\n L.ci = L.base_ci;\n luaE_freeCI(L);\n L.stack = null;\n};\n\n/*\n** Create registry table and its predefined values\n*/\nconst init_registry = function(L, g) {\n let registry = ltable.luaH_new(L);\n g.l_registry.sethvalue(registry);\n ltable.luaH_setint(registry, LUA_RIDX_MAINTHREAD, new lobject.TValue(LUA_TTHREAD, L));\n ltable.luaH_setint(registry, LUA_RIDX_GLOBALS, new lobject.TValue(LUA_TTABLE, ltable.luaH_new(L)));\n};\n\n/*\n** open parts of the state that may cause memory-allocation errors.\n** ('g->version' !== NULL flags that the state was completely build)\n*/\nconst f_luaopen = function(L) {\n let g = L.l_G;\n stack_init(L, L);\n init_registry(L, g);\n ltm.luaT_init(L);\n g.version = lapi.lua_version(null);\n};\n\nconst lua_newthread = function(L) {\n let g = L.l_G;\n let L1 = new lua_State(g);\n L.stack[L.top] = new lobject.TValue(LUA_TTHREAD, L1);\n lapi.api_incr_top(L);\n L1.hookmask = L.hookmask;\n L1.basehookcount = L.basehookcount;\n L1.hook = L.hook;\n L1.hookcount = L1.basehookcount;\n stack_init(L1, L);\n return L1;\n};\n\nconst luaE_freethread = function(L, L1) {\n freestack(L1);\n};\n\nconst lua_newstate = function() {\n let g = new global_State();\n let L = new lua_State(g);\n g.mainthread = L;\n\n if (ldo.luaD_rawrunprotected(L, f_luaopen, null) !== LUA_OK) {\n L = null;\n }\n\n return L;\n};\n\nconst close_state = function(L) {\n freestack(L);\n};\n\nconst lua_close = function(L) {\n L = L.l_G.mainthread; /* only the main thread can be closed */\n close_state(L);\n};\n\nmodule.exports.lua_State = lua_State;\nmodule.exports.CallInfo = CallInfo;\nmodule.exports.CIST_OAH = (1<<0); /* original value of 'allowhook' */\nmodule.exports.CIST_LUA = (1<<1); /* call is running a Lua function */\nmodule.exports.CIST_HOOKED = (1<<2); /* call is running a debug hook */\nmodule.exports.CIST_FRESH = (1<<3); /* call is running on a fresh invocation of luaV_execute */\nmodule.exports.CIST_YPCALL = (1<<4); /* call is a yieldable protected call */\nmodule.exports.CIST_TAIL = (1<<5); /* call was tail called */\nmodule.exports.CIST_HOOKYIELD = (1<<6); /* last hook called yielded */\nmodule.exports.CIST_LEQ = (1<<7); /* using __lt for __le */\nmodule.exports.CIST_FIN = (1<<8); /* call is running a finalizer */\nmodule.exports.EXTRA_STACK = EXTRA_STACK;\nmodule.exports.lua_close = lua_close;\nmodule.exports.lua_newstate = lua_newstate;\nmodule.exports.lua_newthread = lua_newthread;\nmodule.exports.luaE_extendCI = luaE_extendCI;\nmodule.exports.luaE_freeCI = luaE_freeCI;\nmodule.exports.luaE_freethread = luaE_freethread;\n","\"use strict\";\n\nconst { constant_types: { LUA_TNIL } } = require('./defs.js');\nconst lobject = require('./lobject.js');\n\nclass Proto {\n constructor(L) {\n this.id = L.l_G.id_counter++;\n this.k = []; // constants used by the function\n this.p = []; // functions defined inside the function\n this.code = []; // opcodes\n this.cache = null; // last-created closure with this prototype\n this.lineinfo = []; // map from opcodes to source lines (debug information)\n this.upvalues = []; // upvalue information\n this.numparams = 0; // number of fixed parameters\n this.is_vararg = false;\n this.maxstacksize = 0; // number of registers needed by this function\n this.locvars = []; // information about local variables (debug information)\n this.linedefined = 0; // debug information\n this.lastlinedefined = 0; // debug information\n this.source = null; // used for debug information\n }\n}\n\nconst luaF_newLclosure = function(L, n) {\n return new lobject.LClosure(L, n);\n};\n\n\nconst luaF_findupval = function(L, level) {\n return L.stack[level];\n};\n\nconst luaF_close = function(L, level) {\n /* Create new TValues on stack;\n * any closures will keep referencing old TValues */\n for (let i=level; i<L.top; i++) {\n let old = L.stack[i];\n L.stack[i] = new lobject.TValue(old.type, old.value);\n }\n};\n\n/*\n** fill a closure with new upvalues\n*/\nconst luaF_initupvals = function(L, cl) {\n for (let i = 0; i < cl.nupvalues; i++)\n cl.upvals[i] = new lobject.TValue(LUA_TNIL, null);\n};\n\n/*\n** Look for n-th local variable at line 'line' in function 'func'.\n** Returns null if not found.\n*/\nconst luaF_getlocalname = function(f, local_number, pc) {\n for (let i = 0; i < f.locvars.length && f.locvars[i].startpc <= pc; i++) {\n if (pc < f.locvars[i].endpc) { /* is variable active? */\n local_number--;\n if (local_number === 0)\n return f.locvars[i].varname.getstr();\n }\n }\n return null; /* not found */\n};\n\nmodule.exports.MAXUPVAL = 255;\nmodule.exports.Proto = Proto;\nmodule.exports.luaF_findupval = luaF_findupval;\nmodule.exports.luaF_close = luaF_close;\nmodule.exports.luaF_getlocalname = luaF_getlocalname;\nmodule.exports.luaF_initupvals = luaF_initupvals;\nmodule.exports.luaF_newLclosure = luaF_newLclosure;\n","\"use strict\";\n\nconst {\n constant_types: {\n LUA_TTABLE,\n LUA_TUSERDATA\n },\n to_luastring\n} = require('./defs.js');\nconst { lua_assert } = require('./llimits.js');\nconst lobject = require('./lobject.js');\nconst ldo = require('./ldo.js');\nconst lstate = require('./lstate.js');\nconst {\n luaS_bless,\n luaS_new\n} = require('./lstring.js');\nconst ltable = require('./ltable.js');\nconst ldebug = require('./ldebug.js');\nconst lvm = require('./lvm.js');\n\nconst luaT_typenames_ = [\n \"no value\",\n \"nil\",\n \"boolean\",\n \"userdata\",\n \"number\",\n \"string\",\n \"table\",\n \"function\",\n \"userdata\",\n \"thread\",\n \"proto\" /* this last case is used for tests only */\n].map(e => to_luastring(e));\n\nconst ttypename = function(t) {\n return luaT_typenames_[t + 1];\n};\n\n\n/*\n* WARNING: if you change the order of this enumeration,\n* grep \"ORDER TM\" and \"ORDER OP\"\n*/\nconst TMS = {\n TM_INDEX: 0,\n TM_NEWINDEX: 1,\n TM_GC: 2,\n TM_MODE: 3,\n TM_LEN: 4,\n TM_EQ: 5, /* last tag method with fast access */\n TM_ADD: 6,\n TM_SUB: 7,\n TM_MUL: 8,\n TM_MOD: 9,\n TM_POW: 10,\n TM_DIV: 11,\n TM_IDIV: 12,\n TM_BAND: 13 ,\n TM_BOR: 14,\n TM_BXOR: 15,\n TM_SHL: 16,\n TM_SHR: 17,\n TM_UNM: 18,\n TM_BNOT: 19,\n TM_LT: 20,\n TM_LE: 21,\n TM_CONCAT: 22,\n TM_CALL: 23,\n TM_N: 24 /* number of elements in the enum */\n};\n\nconst luaT_init = function(L) {\n L.l_G.tmname[TMS.TM_INDEX] = new luaS_new(L, to_luastring(\"__index\", true));\n L.l_G.tmname[TMS.TM_NEWINDEX] = new luaS_new(L, to_luastring(\"__newindex\", true));\n L.l_G.tmname[TMS.TM_GC] = new luaS_new(L, to_luastring(\"__gc\", true));\n L.l_G.tmname[TMS.TM_MODE] = new luaS_new(L, to_luastring(\"__mode\", true));\n L.l_G.tmname[TMS.TM_LEN] = new luaS_new(L, to_luastring(\"__len\", true));\n L.l_G.tmname[TMS.TM_EQ] = new luaS_new(L, to_luastring(\"__eq\", true));\n L.l_G.tmname[TMS.TM_ADD] = new luaS_new(L, to_luastring(\"__add\", true));\n L.l_G.tmname[TMS.TM_SUB] = new luaS_new(L, to_luastring(\"__sub\", true));\n L.l_G.tmname[TMS.TM_MUL] = new luaS_new(L, to_luastring(\"__mul\", true));\n L.l_G.tmname[TMS.TM_MOD] = new luaS_new(L, to_luastring(\"__mod\", true));\n L.l_G.tmname[TMS.TM_POW] = new luaS_new(L, to_luastring(\"__pow\", true));\n L.l_G.tmname[TMS.TM_DIV] = new luaS_new(L, to_luastring(\"__div\", true));\n L.l_G.tmname[TMS.TM_IDIV] = new luaS_new(L, to_luastring(\"__idiv\", true));\n L.l_G.tmname[TMS.TM_BAND] = new luaS_new(L, to_luastring(\"__band\", true));\n L.l_G.tmname[TMS.TM_BOR] = new luaS_new(L, to_luastring(\"__bor\", true));\n L.l_G.tmname[TMS.TM_BXOR] = new luaS_new(L, to_luastring(\"__bxor\", true));\n L.l_G.tmname[TMS.TM_SHL] = new luaS_new(L, to_luastring(\"__shl\", true));\n L.l_G.tmname[TMS.TM_SHR] = new luaS_new(L, to_luastring(\"__shr\", true));\n L.l_G.tmname[TMS.TM_UNM] = new luaS_new(L, to_luastring(\"__unm\", true));\n L.l_G.tmname[TMS.TM_BNOT] = new luaS_new(L, to_luastring(\"__bnot\", true));\n L.l_G.tmname[TMS.TM_LT] = new luaS_new(L, to_luastring(\"__lt\", true));\n L.l_G.tmname[TMS.TM_LE] = new luaS_new(L, to_luastring(\"__le\", true));\n L.l_G.tmname[TMS.TM_CONCAT] = new luaS_new(L, to_luastring(\"__concat\", true));\n L.l_G.tmname[TMS.TM_CALL] = new luaS_new(L, to_luastring(\"__call\", true));\n};\n\n/*\n** Return the name of the type of an object. For tables and userdata\n** with metatable, use their '__name' metafield, if present.\n*/\nconst __name = to_luastring('__name', true);\nconst luaT_objtypename = function(L, o) {\n let mt;\n if ((o.ttistable() && (mt = o.value.metatable) !== null) ||\n (o.ttisfulluserdata() && (mt = o.value.metatable) !== null)) {\n let name = ltable.luaH_getstr(mt, luaS_bless(L, __name));\n if (name.ttisstring())\n return name.svalue();\n }\n return ttypename(o.ttnov());\n};\n\nconst luaT_callTM = function(L, f, p1, p2, p3, hasres) {\n let func = L.top;\n\n lobject.pushobj2s(L, f); /* push function (assume EXTRA_STACK) */\n lobject.pushobj2s(L, p1); /* 1st argument */\n lobject.pushobj2s(L, p2); /* 2nd argument */\n\n if (!hasres) /* no result? 'p3' is third argument */\n lobject.pushobj2s(L, p3); /* 3rd argument */\n\n if (L.ci.callstatus & lstate.CIST_LUA)\n ldo.luaD_call(L, func, hasres);\n else\n ldo.luaD_callnoyield(L, func, hasres);\n\n if (hasres) { /* if has result, move it to its place */\n let tv = L.stack[L.top-1];\n delete L.stack[--L.top];\n p3.setfrom(tv);\n }\n};\n\nconst luaT_callbinTM = function(L, p1, p2, res, event) {\n let tm = luaT_gettmbyobj(L, p1, event);\n if (tm.ttisnil())\n tm = luaT_gettmbyobj(L, p2, event);\n if (tm.ttisnil()) return false;\n luaT_callTM(L, tm, p1, p2, res, 1);\n return true;\n};\n\nconst luaT_trybinTM = function(L, p1, p2, res, event) {\n if (!luaT_callbinTM(L, p1, p2, res, event)) {\n switch (event) {\n case TMS.TM_CONCAT:\n return ldebug.luaG_concaterror(L, p1, p2);\n case TMS.TM_BAND: case TMS.TM_BOR: case TMS.TM_BXOR:\n case TMS.TM_SHL: case TMS.TM_SHR: case TMS.TM_BNOT: {\n let n1 = lvm.tonumber(p1);\n let n2 = lvm.tonumber(p2);\n if (n1 !== false && n2 !== false)\n return ldebug.luaG_tointerror(L, p1, p2);\n else\n return ldebug.luaG_opinterror(L, p1, p2, to_luastring(\"perform bitwise operation on\", true));\n }\n default:\n return ldebug.luaG_opinterror(L, p1, p2, to_luastring(\"perform arithmetic on\", true));\n }\n }\n};\n\nconst luaT_callorderTM = function(L, p1, p2, event) {\n let res = new lobject.TValue();\n if (!luaT_callbinTM(L, p1, p2, res, event))\n return null;\n else\n return !res.l_isfalse();\n};\n\nconst fasttm = function(l, et, e) {\n return et === null ? null :\n (et.flags & (1 << e)) ? null : luaT_gettm(et, e, l.l_G.tmname[e]);\n};\n\nconst luaT_gettm = function(events, event, ename) {\n const tm = ltable.luaH_getstr(events, ename);\n lua_assert(event <= TMS.TM_EQ);\n if (tm.ttisnil()) { /* no tag method? */\n events.flags |= 1<<event; /* cache this fact */\n return null;\n }\n else return tm;\n};\n\nconst luaT_gettmbyobj = function(L, o, event) {\n let mt;\n switch(o.ttnov()) {\n case LUA_TTABLE:\n case LUA_TUSERDATA:\n mt = o.value.metatable;\n break;\n default:\n mt = L.l_G.mt[o.ttnov()];\n }\n\n return mt ? ltable.luaH_getstr(mt, L.l_G.tmname[event]) : lobject.luaO_nilobject;\n};\n\nmodule.exports.fasttm = fasttm;\nmodule.exports.TMS = TMS;\nmodule.exports.luaT_callTM = luaT_callTM;\nmodule.exports.luaT_callbinTM = luaT_callbinTM;\nmodule.exports.luaT_trybinTM = luaT_trybinTM;\nmodule.exports.luaT_callorderTM = luaT_callorderTM;\nmodule.exports.luaT_gettm = luaT_gettm;\nmodule.exports.luaT_gettmbyobj = luaT_gettmbyobj;\nmodule.exports.luaT_init = luaT_init;\nmodule.exports.luaT_objtypename = luaT_objtypename;\nmodule.exports.ttypename = ttypename;\n","\"use strict\";\n\nconst {\n LUA_MASKLINE,\n LUA_MASKCOUNT,\n LUA_MULTRET,\n constant_types: {\n LUA_TBOOLEAN,\n LUA_TLCF,\n LUA_TLIGHTUSERDATA,\n LUA_TLNGSTR,\n LUA_TNIL,\n LUA_TNUMBER,\n LUA_TNUMFLT,\n LUA_TNUMINT,\n LUA_TSHRSTR,\n LUA_TTABLE,\n LUA_TUSERDATA\n },\n to_luastring\n} = require('./defs.js');\nconst {\n INDEXK,\n ISK,\n LFIELDS_PER_FLUSH,\n OpCodesI: {\n OP_ADD,\n OP_BAND,\n OP_BNOT,\n OP_BOR,\n OP_BXOR,\n OP_CALL,\n OP_CLOSURE,\n OP_CONCAT,\n OP_DIV,\n OP_EQ,\n OP_EXTRAARG,\n OP_FORLOOP,\n OP_FORPREP,\n OP_GETTABLE,\n OP_GETTABUP,\n OP_GETUPVAL,\n OP_IDIV,\n OP_JMP,\n OP_LE,\n OP_LEN,\n OP_LOADBOOL,\n OP_LOADK,\n OP_LOADKX,\n OP_LOADNIL,\n OP_LT,\n OP_MOD,\n OP_MOVE,\n OP_MUL,\n OP_NEWTABLE,\n OP_NOT,\n OP_POW,\n OP_RETURN,\n OP_SELF,\n OP_SETLIST,\n OP_SETTABLE,\n OP_SETTABUP,\n OP_SETUPVAL,\n OP_SHL,\n OP_SHR,\n OP_SUB,\n OP_TAILCALL,\n OP_TEST,\n OP_TESTSET,\n OP_TFORCALL,\n OP_TFORLOOP,\n OP_UNM,\n OP_VARARG\n }\n} = require('./lopcodes.js');\nconst {\n LUA_MAXINTEGER,\n LUA_MININTEGER,\n lua_numbertointeger\n} = require('./luaconf.js');\nconst {\n lua_assert,\n luai_nummod\n} = require('./llimits.js');\nconst lobject = require('./lobject.js');\nconst lfunc = require('./lfunc.js');\nconst lstate = require('./lstate.js');\nconst {\n luaS_bless,\n luaS_eqlngstr,\n luaS_hashlongstr\n} = require('./lstring.js');\nconst ldo = require('./ldo.js');\nconst ltm = require('./ltm.js');\nconst ltable = require('./ltable.js');\nconst ldebug = require('./ldebug.js');\n\n/*\n** finish execution of an opcode interrupted by an yield\n*/\nconst luaV_finishOp = function(L) {\n let ci = L.ci;\n let base = ci.l_base;\n let inst = ci.l_code[ci.l_savedpc - 1]; /* interrupted instruction */\n let op = inst.opcode;\n\n switch (op) { /* finish its execution */\n case OP_ADD: case OP_SUB: case OP_MUL: case OP_DIV: case OP_IDIV:\n case OP_BAND: case OP_BOR: case OP_BXOR: case OP_SHL: case OP_SHR:\n case OP_MOD: case OP_POW:\n case OP_UNM: case OP_BNOT: case OP_LEN:\n case OP_GETTABUP: case OP_GETTABLE: case OP_SELF: {\n lobject.setobjs2s(L, base + inst.A, L.top-1);\n delete L.stack[--L.top];\n break;\n }\n case OP_LE: case OP_LT: case OP_EQ: {\n let res = !L.stack[L.top - 1].l_isfalse();\n delete L.stack[--L.top];\n if (ci.callstatus & lstate.CIST_LEQ) { /* \"<=\" using \"<\" instead? */\n lua_assert(op === OP_LE);\n ci.callstatus ^= lstate.CIST_LEQ; /* clear mark */\n res = !res; /* negate result */\n }\n lua_assert(ci.l_code[ci.l_savedpc].opcode === OP_JMP);\n if (res !== (inst.A ? true : false)) /* condition failed? */\n ci.l_savedpc++; /* skip jump instruction */\n break;\n }\n case OP_CONCAT: {\n let top = L.top - 1; /* top when 'luaT_trybinTM' was called */\n let b = inst.B; /* first element to concatenate */\n let total = top - 1 - (base + b); /* yet to concatenate */\n lobject.setobjs2s(L, top - 2, top); /* put TM result in proper position */\n if (total > 1) { /* are there elements to concat? */\n L.top = top - 1; /* top is one after last element (at top-2) */\n luaV_concat(L, total); /* concat them (may yield again) */\n }\n /* move final result to final position */\n lobject.setobjs2s(L, ci.l_base + inst.A, L.top - 1);\n ldo.adjust_top(L, ci.top); /* restore top */\n break;\n }\n case OP_TFORCALL: {\n lua_assert(ci.l_code[ci.l_savedpc].opcode === OP_TFORLOOP);\n ldo.adjust_top(L, ci.top); /* correct top */\n break;\n }\n case OP_CALL: {\n if (inst.C - 1 >= 0) /* nresults >= 0? */\n ldo.adjust_top(L, ci.top); /* adjust results */\n break;\n }\n }\n};\n\nconst RA = function(L, base, i) {\n return base + i.A;\n};\n\nconst RB = function(L, base, i) {\n return base + i.B;\n};\n\n// const RC = function(L, base, i) {\n// return base + i.C;\n// };\n\nconst RKB = function(L, base, k, i) {\n return ISK(i.B) ? k[INDEXK(i.B)] : L.stack[base + i.B];\n};\n\nconst RKC = function(L, base, k, i) {\n return ISK(i.C) ? k[INDEXK(i.C)] : L.stack[base + i.C];\n};\n\nconst luaV_execute = function(L) {\n let ci = L.ci;\n\n ci.callstatus |= lstate.CIST_FRESH;\n newframe:\n for (;;) {\n lua_assert(ci === L.ci);\n let cl = ci.func.value;\n let k = cl.p.k;\n let base = ci.l_base;\n\n let i = ci.l_code[ci.l_savedpc++];\n\n if (L.hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) {\n ldebug.luaG_traceexec(L);\n }\n\n let ra = RA(L, base, i);\n let opcode = i.opcode;\n\n switch (opcode) {\n case OP_MOVE: {\n lobject.setobjs2s(L, ra, RB(L, base, i));\n break;\n }\n case OP_LOADK: {\n let konst = k[i.Bx];\n lobject.setobj2s(L, ra, konst);\n break;\n }\n case OP_LOADKX: {\n lua_assert(ci.l_code[ci.l_savedpc].opcode === OP_EXTRAARG);\n let konst = k[ci.l_code[ci.l_savedpc++].Ax];\n lobject.setobj2s(L, ra, konst);\n break;\n }\n case OP_LOADBOOL: {\n L.stack[ra].setbvalue(i.B !== 0);\n\n if (i.C !== 0)\n ci.l_savedpc++; /* skip next instruction (if C) */\n\n break;\n }\n case OP_LOADNIL: {\n for (let j = 0; j <= i.B; j++)\n L.stack[ra + j].setnilvalue();\n break;\n }\n case OP_GETUPVAL: {\n let b = i.B;\n lobject.setobj2s(L, ra, cl.upvals[b]);\n break;\n }\n case OP_GETTABUP: {\n let upval = cl.upvals[i.B];\n let rc = RKC(L, base, k, i);\n luaV_gettable(L, upval, rc, ra);\n break;\n }\n case OP_GETTABLE: {\n let rb = L.stack[RB(L, base, i)];\n let rc = RKC(L, base, k, i);\n luaV_gettable(L, rb, rc, ra);\n break;\n }\n case OP_SETTABUP: {\n let upval = cl.upvals[i.A];\n let rb = RKB(L, base, k, i);\n let rc = RKC(L, base, k, i);\n settable(L, upval, rb, rc);\n break;\n }\n case OP_SETUPVAL: {\n let uv = cl.upvals[i.B];\n uv.setfrom(L.stack[ra]);\n break;\n }\n case OP_SETTABLE: {\n let table = L.stack[ra];\n let key = RKB(L, base, k, i);\n let v = RKC(L, base, k, i);\n\n settable(L, table, key, v);\n break;\n }\n case OP_NEWTABLE: {\n L.stack[ra].sethvalue(ltable.luaH_new(L));\n break;\n }\n case OP_SELF: {\n let rb = RB(L, base, i);\n let rc = RKC(L, base, k, i);\n lobject.setobjs2s(L, ra + 1, rb);\n luaV_gettable(L, L.stack[rb], rc, ra);\n break;\n }\n case OP_ADD: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if (op1.ttisinteger() && op2.ttisinteger()) {\n L.stack[ra].setivalue((op1.value + op2.value)|0);\n } else if ((numberop1 = tonumber(op1)) !== false && (numberop2 = tonumber(op2)) !== false) {\n L.stack[ra].setfltvalue(numberop1 + numberop2);\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_ADD);\n }\n break;\n }\n case OP_SUB: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if (op1.ttisinteger() && op2.ttisinteger()) {\n L.stack[ra].setivalue((op1.value - op2.value)|0);\n } else if ((numberop1 = tonumber(op1)) !== false && (numberop2 = tonumber(op2)) !== false) {\n L.stack[ra].setfltvalue(numberop1 - numberop2);\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_SUB);\n }\n break;\n }\n case OP_MUL: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if (op1.ttisinteger() && op2.ttisinteger()) {\n L.stack[ra].setivalue(luaV_imul(op1.value, op2.value));\n } else if ((numberop1 = tonumber(op1)) !== false && (numberop2 = tonumber(op2)) !== false) {\n L.stack[ra].setfltvalue(numberop1 * numberop2);\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_MUL);\n }\n break;\n }\n case OP_MOD: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if (op1.ttisinteger() && op2.ttisinteger()) {\n L.stack[ra].setivalue(luaV_mod(L, op1.value, op2.value));\n } else if ((numberop1 = tonumber(op1)) !== false && (numberop2 = tonumber(op2)) !== false) {\n L.stack[ra].setfltvalue(luai_nummod(L, numberop1, numberop2));\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_MOD);\n }\n break;\n }\n case OP_POW: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if ((numberop1 = tonumber(op1)) !== false && (numberop2 = tonumber(op2)) !== false) {\n L.stack[ra].setfltvalue(Math.pow(numberop1, numberop2));\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_POW);\n }\n break;\n }\n case OP_DIV: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if ((numberop1 = tonumber(op1)) !== false && (numberop2 = tonumber(op2)) !== false) {\n L.stack[ra].setfltvalue(numberop1 / numberop2);\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_DIV);\n }\n break;\n }\n case OP_IDIV: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if (op1.ttisinteger() && op2.ttisinteger()) {\n L.stack[ra].setivalue(luaV_div(L, op1.value, op2.value));\n } else if ((numberop1 = tonumber(op1)) !== false && (numberop2 = tonumber(op2)) !== false) {\n L.stack[ra].setfltvalue(Math.floor(numberop1 / numberop2));\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_IDIV);\n }\n break;\n }\n case OP_BAND: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if ((numberop1 = tointeger(op1)) !== false && (numberop2 = tointeger(op2)) !== false) {\n L.stack[ra].setivalue(numberop1 & numberop2);\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_BAND);\n }\n break;\n }\n case OP_BOR: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if ((numberop1 = tointeger(op1)) !== false && (numberop2 = tointeger(op2)) !== false) {\n L.stack[ra].setivalue(numberop1 | numberop2);\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_BOR);\n }\n break;\n }\n case OP_BXOR: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if ((numberop1 = tointeger(op1)) !== false && (numberop2 = tointeger(op2)) !== false) {\n L.stack[ra].setivalue(numberop1 ^ numberop2);\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_BXOR);\n }\n break;\n }\n case OP_SHL: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if ((numberop1 = tointeger(op1)) !== false && (numberop2 = tointeger(op2)) !== false) {\n L.stack[ra].setivalue(luaV_shiftl(numberop1, numberop2));\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_SHL);\n }\n break;\n }\n case OP_SHR: {\n let op1 = RKB(L, base, k, i);\n let op2 = RKC(L, base, k, i);\n let numberop1, numberop2;\n\n if ((numberop1 = tointeger(op1)) !== false && (numberop2 = tointeger(op2)) !== false) {\n L.stack[ra].setivalue(luaV_shiftl(numberop1, -numberop2));\n } else {\n ltm.luaT_trybinTM(L, op1, op2, L.stack[ra], ltm.TMS.TM_SHR);\n }\n break;\n }\n case OP_UNM: {\n let op = L.stack[RB(L, base, i)];\n let numberop;\n\n if (op.ttisinteger()) {\n L.stack[ra].setivalue((-op.value)|0);\n } else if ((numberop = tonumber(op)) !== false) {\n L.stack[ra].setfltvalue(-numberop);\n } else {\n ltm.luaT_trybinTM(L, op, op, L.stack[ra], ltm.TMS.TM_UNM);\n }\n break;\n }\n case OP_BNOT: {\n let op = L.stack[RB(L, base, i)];\n\n if (op.ttisinteger()) {\n L.stack[ra].setivalue(~op.value);\n } else {\n ltm.luaT_trybinTM(L, op, op, L.stack[ra], ltm.TMS.TM_BNOT);\n }\n break;\n }\n case OP_NOT: {\n let op = L.stack[RB(L, base, i)];\n L.stack[ra].setbvalue(op.l_isfalse());\n break;\n }\n case OP_LEN: {\n luaV_objlen(L, L.stack[ra], L.stack[RB(L, base, i)]);\n break;\n }\n case OP_CONCAT: {\n let b = i.B;\n let c = i.C;\n L.top = base + c + 1; /* mark the end of concat operands */\n luaV_concat(L, c - b + 1);\n let rb = base + b;\n lobject.setobjs2s(L, ra, rb);\n ldo.adjust_top(L, ci.top); /* restore top */\n break;\n }\n case OP_JMP: {\n dojump(L, ci, i, 0);\n break;\n }\n case OP_EQ: {\n if (luaV_equalobj(L, RKB(L, base, k, i), RKC(L, base, k, i)) !== i.A)\n ci.l_savedpc++;\n else\n donextjump(L, ci);\n break;\n }\n case OP_LT: {\n if (luaV_lessthan(L, RKB(L, base, k, i), RKC(L, base, k, i)) !== i.A)\n ci.l_savedpc++;\n else\n donextjump(L, ci);\n break;\n }\n case OP_LE: {\n if (luaV_lessequal(L, RKB(L, base, k, i), RKC(L, base, k, i)) !== i.A)\n ci.l_savedpc++;\n else\n donextjump(L, ci);\n break;\n }\n case OP_TEST: {\n if (i.C ? L.stack[ra].l_isfalse() : !L.stack[ra].l_isfalse())\n ci.l_savedpc++;\n else\n donextjump(L, ci);\n break;\n }\n case OP_TESTSET: {\n let rbIdx = RB(L, base, i);\n let rb = L.stack[rbIdx];\n if (i.C ? rb.l_isfalse() : !rb.l_isfalse())\n ci.l_savedpc++;\n else {\n lobject.setobjs2s(L, ra, rbIdx);\n donextjump(L, ci);\n }\n break;\n }\n case OP_CALL: {\n let b = i.B;\n let nresults = i.C - 1;\n if (b !== 0) ldo.adjust_top(L, ra+b); /* else previous instruction set top */\n if (ldo.luaD_precall(L, ra, nresults)) {\n if (nresults >= 0)\n ldo.adjust_top(L, ci.top); /* adjust results */\n } else {\n ci = L.ci;\n continue newframe;\n }\n\n break;\n }\n case OP_TAILCALL: {\n let b = i.B;\n if (b !== 0) ldo.adjust_top(L, ra+b); /* else previous instruction set top */\n if (ldo.luaD_precall(L, ra, LUA_MULTRET)) { // JS function\n } else {\n /* tail call: put called frame (n) in place of caller one (o) */\n let nci = L.ci;\n let oci = nci.previous;\n let nfunc = nci.func;\n let nfuncOff = nci.funcOff;\n let ofuncOff = oci.funcOff;\n let lim = nci.l_base + nfunc.value.p.numparams;\n if (cl.p.p.length > 0) lfunc.luaF_close(L, oci.l_base);\n for (let aux = 0; nfuncOff + aux < lim; aux++)\n lobject.setobjs2s(L, ofuncOff + aux, nfuncOff + aux);\n oci.l_base = ofuncOff + (nci.l_base - nfuncOff);\n oci.top = ofuncOff + (L.top - nfuncOff);\n ldo.adjust_top(L, oci.top); /* correct top */\n oci.l_code = nci.l_code;\n oci.l_savedpc = nci.l_savedpc;\n oci.callstatus |= lstate.CIST_TAIL;\n oci.next = null;\n ci = L.ci = oci;\n\n lua_assert(L.top === oci.l_base + L.stack[ofuncOff].value.p.maxstacksize);\n\n continue newframe;\n }\n break;\n }\n case OP_RETURN: {\n if (cl.p.p.length > 0) lfunc.luaF_close(L, base);\n let b = ldo.luaD_poscall(L, ci, ra, (i.B !== 0 ? i.B - 1 : L.top - ra));\n\n if (ci.callstatus & lstate.CIST_FRESH)\n return; /* external invocation: return */\n /* invocation via reentry: continue execution */\n ci = L.ci;\n if (b) ldo.adjust_top(L, ci.top);\n lua_assert(ci.callstatus & lstate.CIST_LUA);\n lua_assert(ci.l_code[ci.l_savedpc - 1].opcode === OP_CALL);\n continue newframe;\n }\n case OP_FORLOOP: {\n if (L.stack[ra].ttisinteger()) { /* integer loop? */\n let step = L.stack[ra + 2].value;\n let idx = (L.stack[ra].value + step)|0;\n let limit = L.stack[ra + 1].value;\n\n if (0 < step ? idx <= limit : limit <= idx) {\n ci.l_savedpc += i.sBx;\n L.stack[ra].chgivalue(idx); /* update internal index... */\n L.stack[ra + 3].setivalue(idx);\n }\n } else { /* floating loop */\n let step = L.stack[ra + 2].value;\n let idx = L.stack[ra].value + step;\n let limit = L.stack[ra + 1].value;\n\n if (0 < step ? idx <= limit : limit <= idx) {\n ci.l_savedpc += i.sBx;\n L.stack[ra].chgfltvalue(idx); /* update internal index... */\n L.stack[ra + 3].setfltvalue(idx);\n }\n }\n break;\n }\n case OP_FORPREP: {\n let init = L.stack[ra];\n let plimit = L.stack[ra + 1];\n let pstep = L.stack[ra + 2];\n let forlim;\n\n if (init.ttisinteger() && pstep.ttisinteger() && (forlim = forlimit(plimit, pstep.value))) {\n /* all values are integer */\n let initv = forlim.stopnow ? 0 : init.value;\n plimit.value = forlim.ilimit;\n init.value = (initv - pstep.value)|0;\n } else { /* try making all values floats */\n let nlimit, nstep, ninit;\n if ((nlimit = tonumber(plimit)) === false)\n ldebug.luaG_runerror(L, to_luastring(\"'for' limit must be a number\", true));\n L.stack[ra + 1].setfltvalue(nlimit);\n if ((nstep = tonumber(pstep)) === false)\n ldebug.luaG_runerror(L, to_luastring(\"'for' step must be a number\", true));\n L.stack[ra + 2].setfltvalue(nstep);\n if ((ninit = tonumber(init)) === false)\n ldebug.luaG_runerror(L, to_luastring(\"'for' initial value must be a number\", true));\n L.stack[ra].setfltvalue(ninit - nstep);\n }\n\n ci.l_savedpc += i.sBx;\n break;\n }\n case OP_TFORCALL: {\n let cb = ra + 3; /* call base */\n lobject.setobjs2s(L, cb+2, ra+2);\n lobject.setobjs2s(L, cb+1, ra+1);\n lobject.setobjs2s(L, cb, ra);\n ldo.adjust_top(L, cb+3); /* func. + 2 args (state and index) */\n ldo.luaD_call(L, cb, i.C);\n ldo.adjust_top(L, ci.top);\n /* go straight to OP_TFORLOOP */\n i = ci.l_code[ci.l_savedpc++];\n ra = RA(L, base, i);\n lua_assert(i.opcode === OP_TFORLOOP);\n }\n /* fall through */\n case OP_TFORLOOP: {\n if (!L.stack[ra + 1].ttisnil()) { /* continue loop? */\n lobject.setobjs2s(L, ra, ra + 1); /* save control variable */\n ci.l_savedpc += i.sBx; /* jump back */\n }\n break;\n }\n case OP_SETLIST: {\n let n = i.B;\n let c = i.C;\n\n if (n === 0) n = L.top - ra - 1;\n\n if (c === 0) {\n lua_assert(ci.l_code[ci.l_savedpc].opcode === OP_EXTRAARG);\n c = ci.l_code[ci.l_savedpc++].Ax;\n }\n\n let h = L.stack[ra].value;\n let last = ((c - 1) * LFIELDS_PER_FLUSH) + n;\n\n for (; n > 0; n--) {\n ltable.luaH_setint(h, last--, L.stack[ra + n]);\n }\n ldo.adjust_top(L, ci.top); /* correct top (in case of previous open call) */\n break;\n }\n case OP_CLOSURE: {\n let p = cl.p.p[i.Bx];\n let ncl = getcached(p, cl.upvals, L.stack, base); /* cached closure */\n if (ncl === null) /* no match? */\n pushclosure(L, p, cl.upvals, base, ra); /* create a new one */\n else\n L.stack[ra].setclLvalue(ncl);\n break;\n }\n case OP_VARARG: {\n let b = i.B - 1;\n let n = base - ci.funcOff - cl.p.numparams - 1;\n let j;\n\n if (n < 0) /* less arguments than parameters? */\n n = 0; /* no vararg arguments */\n\n if (b < 0) {\n b = n; /* get all var. arguments */\n ldo.luaD_checkstack(L, n);\n ldo.adjust_top(L, ra + n);\n }\n\n for (j = 0; j < b && j < n; j++)\n lobject.setobjs2s(L, ra + j, base - n + j);\n\n for (; j < b; j++) /* complete required results with nil */\n L.stack[ra + j].setnilvalue();\n break;\n }\n case OP_EXTRAARG: {\n throw Error(\"invalid opcode\");\n }\n }\n }\n};\n\nconst dojump = function(L, ci, i, e) {\n let a = i.A;\n if (a !== 0) lfunc.luaF_close(L, ci.l_base + a - 1);\n ci.l_savedpc += i.sBx + e;\n};\n\nconst donextjump = function(L, ci) {\n dojump(L, ci, ci.l_code[ci.l_savedpc], 1);\n};\n\n\nconst luaV_lessthan = function(L, l, r) {\n if (l.ttisnumber() && r.ttisnumber())\n return LTnum(l, r) ? 1 : 0;\n else if (l.ttisstring() && r.ttisstring())\n return l_strcmp(l.tsvalue(), r.tsvalue()) < 0 ? 1 : 0;\n else {\n let res = ltm.luaT_callorderTM(L, l, r, ltm.TMS.TM_LT);\n if (res === null)\n ldebug.luaG_ordererror(L, l, r);\n return res ? 1 : 0;\n }\n};\n\nconst luaV_lessequal = function(L, l, r) {\n let res;\n\n if (l.ttisnumber() && r.ttisnumber())\n return LEnum(l, r) ? 1 : 0;\n else if (l.ttisstring() && r.ttisstring())\n return l_strcmp(l.tsvalue(), r.tsvalue()) <= 0 ? 1 : 0;\n else {\n res = ltm.luaT_callorderTM(L, l, r, ltm.TMS.TM_LE);\n if (res !== null)\n return res ? 1 : 0;\n }\n /* try 'lt': */\n L.ci.callstatus |= lstate.CIST_LEQ; /* mark it is doing 'lt' for 'le' */\n res = ltm.luaT_callorderTM(L, r, l, ltm.TMS.TM_LT);\n L.ci.callstatus ^= lstate.CIST_LEQ; /* clear mark */\n if (res === null)\n ldebug.luaG_ordererror(L, l, r);\n return res ? 0 : 1; /* result is negated */\n};\n\nconst luaV_equalobj = function(L, t1, t2) {\n if (t1.ttype() !== t2.ttype()) { /* not the same variant? */\n if (t1.ttnov() !== t2.ttnov() || t1.ttnov() !== LUA_TNUMBER)\n return 0; /* only numbers can be equal with different variants */\n else { /* two numbers with different variants */\n /* OPTIMIZATION: instead of calling luaV_tointeger we can just let JS do the comparison */\n return (t1.value === t2.value) ? 1 : 0;\n }\n }\n\n let tm;\n\n /* values have same type and same variant */\n switch(t1.ttype()) {\n case LUA_TNIL:\n return 1;\n case LUA_TBOOLEAN:\n return t1.value == t2.value ? 1 : 0; // Might be 1 or true\n case LUA_TLIGHTUSERDATA:\n case LUA_TNUMINT:\n case LUA_TNUMFLT:\n case LUA_TLCF:\n return t1.value === t2.value ? 1 : 0;\n case LUA_TSHRSTR:\n case LUA_TLNGSTR: {\n return luaS_eqlngstr(t1.tsvalue(), t2.tsvalue()) ? 1 : 0;\n }\n case LUA_TUSERDATA:\n case LUA_TTABLE:\n if (t1.value === t2.value) return 1;\n else if (L === null) return 0;\n\n tm = ltm.fasttm(L, t1.value.metatable, ltm.TMS.TM_EQ);\n if (tm === null)\n tm = ltm.fasttm(L, t2.value.metatable, ltm.TMS.TM_EQ);\n break;\n default:\n return t1.value === t2.value ? 1 : 0;\n }\n\n if (tm === null) /* no TM? */\n return 0;\n\n let tv = new lobject.TValue(); /* doesn't use the stack */\n ltm.luaT_callTM(L, tm, t1, t2, tv, 1);\n return tv.l_isfalse() ? 0 : 1;\n};\n\nconst luaV_rawequalobj = function(t1, t2) {\n return luaV_equalobj(null, t1, t2);\n};\n\nconst forlimit = function(obj, step) {\n let stopnow = false;\n let ilimit = luaV_tointeger(obj, step < 0 ? 2 : 1);\n if (ilimit === false) {\n let n = tonumber(obj);\n if (n === false)\n return false;\n\n if (0 < n) {\n ilimit = LUA_MAXINTEGER;\n if (step < 0) stopnow = true;\n } else {\n ilimit = LUA_MININTEGER;\n if (step >= 0) stopnow = true;\n }\n }\n\n return {\n stopnow: stopnow,\n ilimit: ilimit\n };\n};\n\n/*\n** try to convert a value to an integer, rounding according to 'mode':\n** mode === 0: accepts only integral values\n** mode === 1: takes the floor of the number\n** mode === 2: takes the ceil of the number\n*/\nconst luaV_tointeger = function(obj, mode) {\n if (obj.ttisfloat()) {\n let n = obj.value;\n let f = Math.floor(n);\n\n if (n !== f) { /* not an integral value? */\n if (mode === 0)\n return false; /* fails if mode demands integral value */\n else if (mode > 1) /* needs ceil? */\n f += 1; /* convert floor to ceil (remember: n !== f) */\n }\n\n return lua_numbertointeger(f);\n } else if (obj.ttisinteger()) {\n return obj.value;\n } else if (cvt2num(obj)) {\n let v = new lobject.TValue();\n if (lobject.luaO_str2num(obj.svalue(), v) === (obj.vslen() + 1))\n return luaV_tointeger(v, mode);\n }\n\n return false;\n};\n\nconst tointeger = function(o) {\n return o.ttisinteger() ? o.value : luaV_tointeger(o, 0);\n};\n\nconst tonumber = function(o) {\n if (o.ttnov() === LUA_TNUMBER)\n return o.value;\n\n if (cvt2num(o)) { /* string convertible to number? */\n let v = new lobject.TValue();\n if (lobject.luaO_str2num(o.svalue(), v) === (o.vslen() + 1))\n return v.value;\n }\n\n return false;\n};\n\n/*\n** Return 'l < r', for numbers.\n** As fengari uses javascript numbers for both floats and integers and has\n** correct semantics, we can just compare values.\n*/\nconst LTnum = function(l, r) {\n return l.value < r.value;\n};\n\n/*\n** Return 'l <= r', for numbers.\n*/\nconst LEnum = function(l, r) {\n return l.value <= r.value;\n};\n\n/*\n** Compare two strings 'ls' x 'rs', returning an integer smaller-equal-\n** -larger than zero if 'ls' is smaller-equal-larger than 'rs'.\n*/\nconst l_strcmp = function(ls, rs) {\n let l = luaS_hashlongstr(ls);\n let r = luaS_hashlongstr(rs);\n /* In fengari we assume string hash has same collation as byte values */\n if (l === r)\n return 0;\n else if (l < r)\n return -1;\n else\n return 1;\n};\n\n/*\n** Main operation 'ra' = #rb'.\n*/\nconst luaV_objlen = function(L, ra, rb) {\n let tm;\n switch(rb.ttype()) {\n case LUA_TTABLE: {\n let h = rb.value;\n tm = ltm.fasttm(L, h.metatable, ltm.TMS.TM_LEN);\n if (tm !== null) break; /* metamethod? break switch to call it */\n ra.setivalue(ltable.luaH_getn(h)); /* else primitive len */\n return;\n }\n case LUA_TSHRSTR:\n case LUA_TLNGSTR:\n ra.setivalue(rb.vslen());\n return;\n default: {\n tm = ltm.luaT_gettmbyobj(L, rb, ltm.TMS.TM_LEN);\n if (tm.ttisnil())\n ldebug.luaG_typeerror(L, rb, to_luastring(\"get length of\", true));\n break;\n }\n }\n\n ltm.luaT_callTM(L, tm, rb, rb, ra, 1);\n};\n\n/* Shim taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul */\nconst luaV_imul = Math.imul || function(a, b) {\n let aHi = (a >>> 16) & 0xffff;\n let aLo = a & 0xffff;\n let bHi = (b >>> 16) & 0xffff;\n let bLo = b & 0xffff;\n /*\n ** the shift by 0 fixes the sign on the high part\n ** the final |0 converts the unsigned value into a signed value\n */\n return ((aLo * bLo) + (((aHi * bLo + aLo * bHi) << 16) >>> 0) | 0);\n};\n\nconst luaV_div = function(L, m, n) {\n if (n === 0)\n ldebug.luaG_runerror(L, to_luastring(\"attempt to divide by zero\"));\n return Math.floor(m / n)|0;\n};\n\n// % semantic on negative numbers is different in js\nconst luaV_mod = function(L, m, n) {\n if (n === 0)\n ldebug.luaG_runerror(L, to_luastring(\"attempt to perform 'n%%0'\"));\n return (m - Math.floor(m / n) * n)|0;\n};\n\nconst NBITS = 32;\n\nconst luaV_shiftl = function(x, y) {\n if (y < 0) { /* shift right? */\n if (y <= -NBITS) return 0;\n else return x >>> -y;\n }\n else { /* shift left */\n if (y >= NBITS) return 0;\n else return x << y;\n }\n};\n\n/*\n** check whether cached closure in prototype 'p' may be reused, that is,\n** whether there is a cached closure with the same upvalues needed by\n** new closure to be created.\n*/\nconst getcached = function(p, encup, stack, base) {\n let c = p.cache;\n if (c !== null) { /* is there a cached closure? */\n let uv = p.upvalues;\n let nup = uv.length;\n for (let i = 0; i < nup; i++) { /* check whether it has right upvalues */\n let v = uv[i].instack ? stack[base + uv[i].idx] : encup[uv[i].idx];\n if (c.upvals[i] !== v)\n return null; /* wrong upvalue; cannot reuse closure */\n }\n }\n return c; /* return cached closure (or NULL if no cached closure) */\n};\n\n/*\n** create a new Lua closure, push it in the stack, and initialize\n** its upvalues.\n*/\nconst pushclosure = function(L, p, encup, base, ra) {\n let nup = p.upvalues.length;\n let uv = p.upvalues;\n let ncl = new lobject.LClosure(L, nup);\n ncl.p = p;\n L.stack[ra].setclLvalue(ncl);\n for (let i = 0; i < nup; i++) {\n if (uv[i].instack)\n ncl.upvals[i] = lfunc.luaF_findupval(L, base + uv[i].idx);\n else\n ncl.upvals[i] = encup[uv[i].idx];\n }\n p.cache = ncl; /* save it on cache for reuse */\n};\n\nconst cvt2str = function(o) {\n return o.ttisnumber();\n};\n\nconst cvt2num = function(o) {\n return o.ttisstring();\n};\n\nconst tostring = function(L, i) {\n let o = L.stack[i];\n\n if (o.ttisstring()) return true;\n\n if (cvt2str(o)) {\n lobject.luaO_tostring(L, o);\n return true;\n }\n\n return false;\n};\n\nconst isemptystr = function(o) {\n return o.ttisstring() && o.vslen() === 0;\n};\n\n/* copy strings in stack from top - n up to top - 1 to buffer */\nconst copy2buff = function(L, top, n, buff) {\n let tl = 0; /* size already copied */\n do {\n let tv = L.stack[top-n];\n let l = tv.vslen(); /* length of string being copied */\n let s = tv.svalue();\n buff.set(s, tl);\n tl += l;\n } while (--n > 0);\n};\n\n/*\n** Main operation for concatenation: concat 'total' values in the stack,\n** from 'L->top - total' up to 'L->top - 1'.\n*/\nconst luaV_concat = function(L, total) {\n lua_assert(total >= 2);\n do {\n let top = L.top;\n let n = 2; /* number of elements handled in this pass (at least 2) */\n\n if (!(L.stack[top-2].ttisstring() || cvt2str(L.stack[top-2])) || !tostring(L, top - 1)) {\n ltm.luaT_trybinTM(L, L.stack[top-2], L.stack[top-1], L.stack[top-2], ltm.TMS.TM_CONCAT);\n } else if (isemptystr(L.stack[top-1])) {\n tostring(L, top - 2);\n } else if (isemptystr(L.stack[top-2])) {\n lobject.setobjs2s(L, top - 2, top - 1);\n } else {\n /* at least two non-empty string values; get as many as possible */\n let tl = L.stack[top-1].vslen();\n /* collect total length and number of strings */\n for (n = 1; n < total && tostring(L, top - n - 1); n++) {\n let l = L.stack[top - n - 1].vslen();\n tl += l;\n }\n let buff = new Uint8Array(tl);\n copy2buff(L, top, n, buff);\n let ts = luaS_bless(L, buff);\n lobject.setsvalue2s(L, top - n, ts);\n }\n total -= n - 1; /* got 'n' strings to create 1 new */\n /* popped 'n' strings and pushed one */\n for (; L.top > top-(n-1);)\n delete L.stack[--L.top];\n } while (total > 1); /* repeat until only 1 result left */\n};\n\nconst MAXTAGLOOP = 2000;\n\nconst luaV_gettable = function(L, t, key, ra) {\n for (let loop = 0; loop < MAXTAGLOOP; loop++) {\n let tm;\n\n if (!t.ttistable()) {\n tm = ltm.luaT_gettmbyobj(L, t, ltm.TMS.TM_INDEX);\n if (tm.ttisnil())\n ldebug.luaG_typeerror(L, t, to_luastring('index', true)); /* no metamethod */\n /* else will try the metamethod */\n } else {\n let slot = ltable.luaH_get(L, t.value, key);\n if (!slot.ttisnil()) {\n lobject.setobj2s(L, ra, slot);\n return;\n } else { /* 't' is a table */\n tm = ltm.fasttm(L, t.value.metatable, ltm.TMS.TM_INDEX); /* table's metamethod */\n if (tm === null) { /* no metamethod? */\n L.stack[ra].setnilvalue(); /* result is nil */\n return;\n }\n }\n /* else will try the metamethod */\n }\n if (tm.ttisfunction()) { /* is metamethod a function? */\n ltm.luaT_callTM(L, tm, t, key, L.stack[ra], 1); /* call it */\n return;\n }\n t = tm; /* else try to access 'tm[key]' */\n }\n\n ldebug.luaG_runerror(L, to_luastring(\"'__index' chain too long; possible loop\", true));\n};\n\nconst settable = function(L, t, key, val) {\n for (let loop = 0; loop < MAXTAGLOOP; loop++) {\n let tm;\n if (t.ttistable()) {\n let h = t.value; /* save 't' table */\n let slot = ltable.luaH_get(L, h, key);\n if (!slot.ttisnil() || (tm = ltm.fasttm(L, h.metatable, ltm.TMS.TM_NEWINDEX)) === null) {\n ltable.luaH_setfrom(L, h, key, val);\n ltable.invalidateTMcache(h);\n return;\n }\n /* else will try the metamethod */\n } else { /* not a table; check metamethod */\n if ((tm = ltm.luaT_gettmbyobj(L, t, ltm.TMS.TM_NEWINDEX)).ttisnil())\n ldebug.luaG_typeerror(L, t, to_luastring('index', true));\n }\n /* try the metamethod */\n if (tm.ttisfunction()) {\n ltm.luaT_callTM(L, tm, t, key, val, 0);\n return;\n }\n t = tm; /* else repeat assignment over 'tm' */\n }\n\n ldebug.luaG_runerror(L, to_luastring(\"'__newindex' chain too long; possible loop\", true));\n};\n\n\nmodule.exports.cvt2str = cvt2str;\nmodule.exports.cvt2num = cvt2num;\nmodule.exports.luaV_gettable = luaV_gettable;\nmodule.exports.luaV_concat = luaV_concat;\nmodule.exports.luaV_div = luaV_div;\nmodule.exports.luaV_equalobj = luaV_equalobj;\nmodule.exports.luaV_execute = luaV_execute;\nmodule.exports.luaV_finishOp = luaV_finishOp;\nmodule.exports.luaV_imul = luaV_imul;\nmodule.exports.luaV_lessequal = luaV_lessequal;\nmodule.exports.luaV_lessthan = luaV_lessthan;\nmodule.exports.luaV_mod = luaV_mod;\nmodule.exports.luaV_objlen = luaV_objlen;\nmodule.exports.luaV_rawequalobj = luaV_rawequalobj;\nmodule.exports.luaV_shiftl = luaV_shiftl;\nmodule.exports.luaV_tointeger = luaV_tointeger;\nmodule.exports.settable = settable;\nmodule.exports.tointeger = tointeger;\nmodule.exports.tonumber = tonumber;\n","\"use strict\";\n\nconst OpCodes = [\n \"MOVE\",\n \"LOADK\",\n \"LOADKX\",\n \"LOADBOOL\",\n \"LOADNIL\",\n \"GETUPVAL\",\n \"GETTABUP\",\n \"GETTABLE\",\n \"SETTABUP\",\n \"SETUPVAL\",\n \"SETTABLE\",\n \"NEWTABLE\",\n \"SELF\",\n \"ADD\",\n \"SUB\",\n \"MUL\",\n \"MOD\",\n \"POW\",\n \"DIV\",\n \"IDIV\",\n \"BAND\",\n \"BOR\",\n \"BXOR\",\n \"SHL\",\n \"SHR\",\n \"UNM\",\n \"BNOT\",\n \"NOT\",\n \"LEN\",\n \"CONCAT\",\n \"JMP\",\n \"EQ\",\n \"LT\",\n \"LE\",\n \"TEST\",\n \"TESTSET\",\n \"CALL\",\n \"TAILCALL\",\n \"RETURN\",\n \"FORLOOP\",\n \"FORPREP\",\n \"TFORCALL\",\n \"TFORLOOP\",\n \"SETLIST\",\n \"CLOSURE\",\n \"VARARG\",\n \"EXTRAARG\"\n];\n\nconst OpCodesI = {\n OP_MOVE: 0,\n OP_LOADK: 1,\n OP_LOADKX: 2,\n OP_LOADBOOL: 3,\n OP_LOADNIL: 4,\n OP_GETUPVAL: 5,\n OP_GETTABUP: 6,\n OP_GETTABLE: 7,\n OP_SETTABUP: 8,\n OP_SETUPVAL: 9,\n OP_SETTABLE: 10,\n OP_NEWTABLE: 11,\n OP_SELF: 12,\n OP_ADD: 13,\n OP_SUB: 14,\n OP_MUL: 15,\n OP_MOD: 16,\n OP_POW: 17,\n OP_DIV: 18,\n OP_IDIV: 19,\n OP_BAND: 20,\n OP_BOR: 21,\n OP_BXOR: 22,\n OP_SHL: 23,\n OP_SHR: 24,\n OP_UNM: 25,\n OP_BNOT: 26,\n OP_NOT: 27,\n OP_LEN: 28,\n OP_CONCAT: 29,\n OP_JMP: 30,\n OP_EQ: 31,\n OP_LT: 32,\n OP_LE: 33,\n OP_TEST: 34,\n OP_TESTSET: 35,\n OP_CALL: 36,\n OP_TAILCALL: 37,\n OP_RETURN: 38,\n OP_FORLOOP: 39,\n OP_FORPREP: 40,\n OP_TFORCALL: 41,\n OP_TFORLOOP: 42,\n OP_SETLIST: 43,\n OP_CLOSURE: 44,\n OP_VARARG: 45,\n OP_EXTRAARG: 46\n};\n\n/*\n** masks for instruction properties. The format is:\n** bits 0-1: op mode\n** bits 2-3: C arg mode\n** bits 4-5: B arg mode\n** bit 6: instruction set register A\n** bit 7: operator is a test (next instruction must be a jump)\n*/\nconst OpArgN = 0; /* argument is not used */\nconst OpArgU = 1; /* argument is used */\nconst OpArgR = 2; /* argument is a register or a jump offset */\nconst OpArgK = 3; /* argument is a constant or register/constant */\n\n/* basic instruction format */\nconst iABC = 0;\nconst iABx = 1;\nconst iAsBx = 2;\nconst iAx = 3;\n\nconst luaP_opmodes = [\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgN << 2 | iABC, /* OP_MOVE */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgN << 2 | iABx, /* OP_LOADK */\n 0 << 7 | 1 << 6 | OpArgN << 4 | OpArgN << 2 | iABx, /* OP_LOADKX */\n 0 << 7 | 1 << 6 | OpArgU << 4 | OpArgU << 2 | iABC, /* OP_LOADBOOL */\n 0 << 7 | 1 << 6 | OpArgU << 4 | OpArgN << 2 | iABC, /* OP_LOADNIL */\n 0 << 7 | 1 << 6 | OpArgU << 4 | OpArgN << 2 | iABC, /* OP_GETUPVAL */\n 0 << 7 | 1 << 6 | OpArgU << 4 | OpArgK << 2 | iABC, /* OP_GETTABUP */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgK << 2 | iABC, /* OP_GETTABLE */\n 0 << 7 | 0 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_SETTABUP */\n 0 << 7 | 0 << 6 | OpArgU << 4 | OpArgN << 2 | iABC, /* OP_SETUPVAL */\n 0 << 7 | 0 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_SETTABLE */\n 0 << 7 | 1 << 6 | OpArgU << 4 | OpArgU << 2 | iABC, /* OP_NEWTABLE */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgK << 2 | iABC, /* OP_SELF */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_ADD */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_SUB */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_MUL */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_MOD */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_POW */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_DIV */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_IDIV */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_BAND */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_BOR */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_BXOR */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_SHL */\n 0 << 7 | 1 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_SHR */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgN << 2 | iABC, /* OP_UNM */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgN << 2 | iABC, /* OP_BNOT */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgN << 2 | iABC, /* OP_NOT */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgN << 2 | iABC, /* OP_LEN */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgR << 2 | iABC, /* OP_CONCAT */\n 0 << 7 | 0 << 6 | OpArgR << 4 | OpArgN << 2 | iAsBx, /* OP_JMP */\n 1 << 7 | 0 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_EQ */\n 1 << 7 | 0 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_LT */\n 1 << 7 | 0 << 6 | OpArgK << 4 | OpArgK << 2 | iABC, /* OP_LE */\n 1 << 7 | 0 << 6 | OpArgN << 4 | OpArgU << 2 | iABC, /* OP_TEST */\n 1 << 7 | 1 << 6 | OpArgR << 4 | OpArgU << 2 | iABC, /* OP_TESTSET */\n 0 << 7 | 1 << 6 | OpArgU << 4 | OpArgU << 2 | iABC, /* OP_CALL */\n 0 << 7 | 1 << 6 | OpArgU << 4 | OpArgU << 2 | iABC, /* OP_TAILCALL */\n 0 << 7 | 0 << 6 | OpArgU << 4 | OpArgN << 2 | iABC, /* OP_RETURN */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgN << 2 | iAsBx, /* OP_FORLOOP */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgN << 2 | iAsBx, /* OP_FORPREP */\n 0 << 7 | 0 << 6 | OpArgN << 4 | OpArgU << 2 | iABC, /* OP_TFORCALL */\n 0 << 7 | 1 << 6 | OpArgR << 4 | OpArgN << 2 | iAsBx, /* OP_TFORLOOP */\n 0 << 7 | 0 << 6 | OpArgU << 4 | OpArgU << 2 | iABC, /* OP_SETLIST */\n 0 << 7 | 1 << 6 | OpArgU << 4 | OpArgN << 2 | iABx, /* OP_CLOSURE */\n 0 << 7 | 1 << 6 | OpArgU << 4 | OpArgN << 2 | iABC, /* OP_VARARG */\n 0 << 7 | 0 << 6 | OpArgU << 4 | OpArgU << 2 | iAx /* OP_EXTRAARG */\n];\n\nconst getOpMode = function(m) {\n return luaP_opmodes[m] & 3;\n};\n\nconst getBMode = function(m) {\n return (luaP_opmodes[m] >> 4) & 3;\n};\n\nconst getCMode = function(m) {\n return (luaP_opmodes[m] >> 2) & 3;\n};\n\nconst testAMode = function(m) {\n return luaP_opmodes[m] & (1 << 6);\n};\n\nconst testTMode = function(m) {\n return luaP_opmodes[m] & (1 << 7);\n};\n\nconst SIZE_C = 9;\nconst SIZE_B = 9;\nconst SIZE_Bx = (SIZE_C + SIZE_B);\nconst SIZE_A = 8;\nconst SIZE_Ax = (SIZE_C + SIZE_B + SIZE_A);\nconst SIZE_OP = 6;\nconst POS_OP = 0;\nconst POS_A = (POS_OP + SIZE_OP);\nconst POS_C = (POS_A + SIZE_A);\nconst POS_B = (POS_C + SIZE_C);\nconst POS_Bx = POS_C;\nconst POS_Ax = POS_A;\nconst MAXARG_Bx = ((1 << SIZE_Bx) - 1);\nconst MAXARG_sBx = (MAXARG_Bx >> 1); /* 'sBx' is signed */\nconst MAXARG_Ax = ((1<<SIZE_Ax)-1);\nconst MAXARG_A = ((1 << SIZE_A) - 1);\nconst MAXARG_B = ((1 << SIZE_B) - 1);\nconst MAXARG_C = ((1 << SIZE_C) - 1);\n\n/* this bit 1 means constant (0 means register) */\nconst BITRK = (1 << (SIZE_B - 1));\n\nconst MAXINDEXRK = (BITRK - 1);\n\n/*\n** invalid register that fits in 8 bits\n*/\nconst NO_REG = MAXARG_A;\n\n/* test whether value is a constant */\nconst ISK = function (x) {\n return x & BITRK;\n};\n\n/* gets the index of the constant */\nconst INDEXK = function (r) {\n return r & ~BITRK;\n};\n\n/* code a constant index as a RK value */\nconst RKASK = function(x) {\n return x | BITRK;\n};\n\n\n/* creates a mask with 'n' 1 bits at position 'p' */\nconst MASK1 = function(n, p) {\n return ((~((~0)<<(n)))<<(p));\n};\n\n/* creates a mask with 'n' 0 bits at position 'p' */\nconst MASK0 = function(n, p) {\n return (~MASK1(n, p));\n};\n\nconst GET_OPCODE = function(i) {\n return i.opcode;\n};\n\nconst SET_OPCODE = function(i, o) {\n i.code = (i.code & MASK0(SIZE_OP, POS_OP)) | ((o << POS_OP) & MASK1(SIZE_OP, POS_OP));\n return fullins(i);\n};\n\nconst setarg = function(i, v, pos, size) {\n i.code = (i.code & MASK0(size, pos)) | ((v << pos) & MASK1(size, pos));\n return fullins(i);\n};\n\nconst GETARG_A = function(i) {\n return i.A;\n};\n\nconst SETARG_A = function(i,v) {\n return setarg(i, v, POS_A, SIZE_A);\n};\n\nconst GETARG_B = function(i) {\n return i.B;\n};\n\nconst SETARG_B = function(i,v) {\n return setarg(i, v, POS_B, SIZE_B);\n};\n\nconst GETARG_C = function(i) {\n return i.C;\n};\n\nconst SETARG_C = function(i,v) {\n return setarg(i, v, POS_C, SIZE_C);\n};\n\nconst GETARG_Bx = function(i) {\n return i.Bx;\n};\n\nconst SETARG_Bx = function(i,v) {\n return setarg(i, v, POS_Bx, SIZE_Bx);\n};\n\nconst GETARG_Ax = function(i) {\n return i.Ax;\n};\n\nconst SETARG_Ax = function(i,v) {\n return setarg(i, v, POS_Ax, SIZE_Ax);\n};\n\nconst GETARG_sBx = function(i) {\n return i.sBx;\n};\n\nconst SETARG_sBx = function(i, b) {\n return SETARG_Bx(i, b + MAXARG_sBx);\n};\n\n/*\n** Pre-calculate all possible part of the instruction\n*/\nconst fullins = function(ins) {\n if (typeof ins === \"number\") {\n return {\n code: ins,\n opcode: (ins >> POS_OP) & MASK1(SIZE_OP, 0),\n A: (ins >> POS_A) & MASK1(SIZE_A, 0),\n B: (ins >> POS_B) & MASK1(SIZE_B, 0),\n C: (ins >> POS_C) & MASK1(SIZE_C, 0),\n Bx: (ins >> POS_Bx) & MASK1(SIZE_Bx, 0),\n Ax: (ins >> POS_Ax) & MASK1(SIZE_Ax, 0),\n sBx: ((ins >> POS_Bx) & MASK1(SIZE_Bx, 0)) - MAXARG_sBx\n };\n } else {\n let i = ins.code;\n ins.opcode = (i >> POS_OP) & MASK1(SIZE_OP, 0);\n ins.A = (i >> POS_A) & MASK1(SIZE_A, 0);\n ins.B = (i >> POS_B) & MASK1(SIZE_B, 0);\n ins.C = (i >> POS_C) & MASK1(SIZE_C, 0);\n ins.Bx = (i >> POS_Bx) & MASK1(SIZE_Bx, 0);\n ins.Ax = (i >> POS_Ax) & MASK1(SIZE_Ax, 0);\n ins.sBx = ((i >> POS_Bx) & MASK1(SIZE_Bx, 0)) - MAXARG_sBx;\n return ins;\n }\n};\n\nconst CREATE_ABC = function(o, a, b, c) {\n return fullins(o << POS_OP | a << POS_A | b << POS_B | c << POS_C);\n};\n\nconst CREATE_ABx = function(o, a, bc) {\n return fullins(o << POS_OP | a << POS_A | bc << POS_Bx);\n};\n\nconst CREATE_Ax = function(o, a) {\n return fullins(o << POS_OP | a << POS_Ax);\n};\n\n/* number of list items to accumulate before a SETLIST instruction */\nconst LFIELDS_PER_FLUSH = 50;\n\nmodule.exports.BITRK = BITRK;\nmodule.exports.CREATE_ABC = CREATE_ABC;\nmodule.exports.CREATE_ABx = CREATE_ABx;\nmodule.exports.CREATE_Ax = CREATE_Ax;\nmodule.exports.GET_OPCODE = GET_OPCODE;\nmodule.exports.GETARG_A = GETARG_A;\nmodule.exports.GETARG_B = GETARG_B;\nmodule.exports.GETARG_C = GETARG_C;\nmodule.exports.GETARG_Bx = GETARG_Bx;\nmodule.exports.GETARG_Ax = GETARG_Ax;\nmodule.exports.GETARG_sBx = GETARG_sBx;\nmodule.exports.INDEXK = INDEXK;\nmodule.exports.ISK = ISK;\nmodule.exports.LFIELDS_PER_FLUSH = LFIELDS_PER_FLUSH;\nmodule.exports.MAXARG_A = MAXARG_A;\nmodule.exports.MAXARG_Ax = MAXARG_Ax;\nmodule.exports.MAXARG_B = MAXARG_B;\nmodule.exports.MAXARG_Bx = MAXARG_Bx;\nmodule.exports.MAXARG_C = MAXARG_C;\nmodule.exports.MAXARG_sBx = MAXARG_sBx;\nmodule.exports.MAXINDEXRK = MAXINDEXRK;\nmodule.exports.NO_REG = NO_REG;\nmodule.exports.OpArgK = OpArgK;\nmodule.exports.OpArgN = OpArgN;\nmodule.exports.OpArgR = OpArgR;\nmodule.exports.OpArgU = OpArgU;\nmodule.exports.OpCodes = OpCodes;\nmodule.exports.OpCodesI = OpCodesI;\nmodule.exports.POS_A = POS_A;\nmodule.exports.POS_Ax = POS_Ax;\nmodule.exports.POS_B = POS_B;\nmodule.exports.POS_Bx = POS_Bx;\nmodule.exports.POS_C = POS_C;\nmodule.exports.POS_OP = POS_OP;\nmodule.exports.RKASK = RKASK;\nmodule.exports.SETARG_A = SETARG_A;\nmodule.exports.SETARG_Ax = SETARG_Ax;\nmodule.exports.SETARG_B = SETARG_B;\nmodule.exports.SETARG_Bx = SETARG_Bx;\nmodule.exports.SETARG_C = SETARG_C;\nmodule.exports.SETARG_sBx = SETARG_sBx;\nmodule.exports.SET_OPCODE = SET_OPCODE;\nmodule.exports.SIZE_A = SIZE_A;\nmodule.exports.SIZE_Ax = SIZE_Ax;\nmodule.exports.SIZE_B = SIZE_B;\nmodule.exports.SIZE_Bx = SIZE_Bx;\nmodule.exports.SIZE_C = SIZE_C;\nmodule.exports.SIZE_OP = SIZE_OP;\nmodule.exports.fullins = fullins;\nmodule.exports.getBMode = getBMode;\nmodule.exports.getCMode = getCMode;\nmodule.exports.getOpMode = getOpMode;\nmodule.exports.iABC = iABC;\nmodule.exports.iABx = iABx;\nmodule.exports.iAsBx = iAsBx;\nmodule.exports.iAx = iAx;\nmodule.exports.testAMode = testAMode;\nmodule.exports.testTMode = testTMode;\n","\"use strict\";\n\nconst {\n LUA_VERSION_MAJOR,\n LUA_VERSION_MINOR\n} = require(\"./lua.js\");\n\nconst LUA_VERSUFFIX = \"_\" + LUA_VERSION_MAJOR + \"_\" + LUA_VERSION_MINOR;\nmodule.exports.LUA_VERSUFFIX = LUA_VERSUFFIX;\n\nmodule.exports.lua_assert = function(c) {};\n\nmodule.exports.luaopen_base = require(\"./lbaselib.js\").luaopen_base;\n\nconst LUA_COLIBNAME = \"coroutine\";\nmodule.exports.LUA_COLIBNAME = LUA_COLIBNAME;\nmodule.exports.luaopen_coroutine = require(\"./lcorolib.js\").luaopen_coroutine;\n\nconst LUA_TABLIBNAME = \"table\";\nmodule.exports.LUA_TABLIBNAME = LUA_TABLIBNAME;\nmodule.exports.luaopen_table = require(\"./ltablib.js\").luaopen_table;\n\nif (typeof process !== \"undefined\") {\n const LUA_IOLIBNAME = \"io\";\n module.exports.LUA_IOLIBNAME = LUA_IOLIBNAME;\n module.exports.luaopen_io = require(\"./liolib.js\").luaopen_io;\n}\n\nconst LUA_OSLIBNAME = \"os\";\nmodule.exports.LUA_OSLIBNAME = LUA_OSLIBNAME;\nmodule.exports.luaopen_os = require(\"./loslib.js\").luaopen_os;\n\nconst LUA_STRLIBNAME = \"string\";\nmodule.exports.LUA_STRLIBNAME = LUA_STRLIBNAME;\nmodule.exports.luaopen_string = require(\"./lstrlib.js\").luaopen_string;\n\nconst LUA_UTF8LIBNAME = \"utf8\";\nmodule.exports.LUA_UTF8LIBNAME = LUA_UTF8LIBNAME;\nmodule.exports.luaopen_utf8 = require(\"./lutf8lib.js\").luaopen_utf8;\n\nconst LUA_BITLIBNAME = \"bit32\";\nmodule.exports.LUA_BITLIBNAME = LUA_BITLIBNAME;\n// module.exports.luaopen_bit32 = require(\"./lbitlib.js\").luaopen_bit32;\n\nconst LUA_MATHLIBNAME = \"math\";\nmodule.exports.LUA_MATHLIBNAME = LUA_MATHLIBNAME;\nmodule.exports.luaopen_math = require(\"./lmathlib.js\").luaopen_math;\n\nconst LUA_DBLIBNAME = \"debug\";\nmodule.exports.LUA_DBLIBNAME = LUA_DBLIBNAME;\nmodule.exports.luaopen_debug = require(\"./ldblib.js\").luaopen_debug;\n\nconst LUA_LOADLIBNAME = \"package\";\nmodule.exports.LUA_LOADLIBNAME = LUA_LOADLIBNAME;\nmodule.exports.luaopen_package = require(\"./loadlib.js\").luaopen_package;\n\nconst LUA_FENGARILIBNAME = \"fengari\";\nmodule.exports.LUA_FENGARILIBNAME = LUA_FENGARILIBNAME;\nmodule.exports.luaopen_fengari = require(\"./fengarilib.js\").luaopen_fengari;\n\nconst linit = require('./linit.js');\nmodule.exports.luaL_openlibs = linit.luaL_openlibs;\n","\"use strict\";\n\nconst {\n\tlua,\n\tlauxlib,\n\tlualib,\n\tto_luastring\n} = require('fengari');\nconst {\n\tLUA_MULTRET,\n\tLUA_OK,\n\tLUA_REGISTRYINDEX,\n\tLUA_RIDX_MAINTHREAD,\n\tLUA_TBOOLEAN,\n\tLUA_TFUNCTION,\n\tLUA_TLIGHTUSERDATA,\n\tLUA_TNIL,\n\tLUA_TNONE,\n\tLUA_TNUMBER,\n\tLUA_TSTRING,\n\tLUA_TTABLE,\n\tLUA_TTHREAD,\n\tLUA_TUSERDATA,\n\tlua_atnativeerror,\n\tlua_call,\n\tlua_getfield,\n\tlua_gettable,\n\tlua_gettop,\n\tlua_isnil,\n\tlua_isproxy,\n\tlua_newuserdata,\n\tlua_pcall,\n\tlua_pop,\n\tlua_pushboolean,\n\tlua_pushcfunction,\n\tlua_pushinteger,\n\tlua_pushlightuserdata,\n\tlua_pushliteral,\n\tlua_pushnil,\n\tlua_pushnumber,\n\tlua_pushstring,\n\tlua_pushvalue,\n\tlua_rawgeti,\n\tlua_rawgetp,\n\tlua_rawsetp,\n\tlua_rotate,\n\tlua_setfield,\n\tlua_settable,\n\tlua_settop,\n\tlua_toboolean,\n\tlua_tojsstring,\n\tlua_tonumber,\n\tlua_toproxy,\n\tlua_tothread,\n\tlua_touserdata,\n\tlua_type\n} = lua;\nconst {\n\tluaL_argerror,\n\tluaL_checkany,\n\tluaL_checkoption,\n\tluaL_checkstack,\n\tluaL_checkudata,\n\tluaL_error,\n\tluaL_getmetafield,\n\tluaL_newlib,\n\tluaL_newmetatable,\n\tluaL_requiref,\n\tluaL_setfuncs,\n\tluaL_setmetatable,\n\tluaL_testudata,\n\tluaL_tolstring\n} = lauxlib;\nconst {\n\tluaopen_base\n} = lualib;\n\nconst FENGARI_INTEROP_VERSION_MAJOR = \"0\";\nconst FENGARI_INTEROP_VERSION_MINOR = \"1\";\nconst FENGARI_INTEROP_VERSION_NUM = 1;\nconst FENGARI_INTEROP_VERSION_RELEASE = \"2\";\nconst FENGARI_INTEROP_VERSION = FENGARI_INTEROP_VERSION_MAJOR + \".\" + FENGARI_INTEROP_VERSION_MINOR;\nconst FENGARI_INTEROP_RELEASE = FENGARI_INTEROP_VERSION + \".\" + FENGARI_INTEROP_VERSION_RELEASE;\n\nlet custom_inspect_symbol;\nif (typeof process !== \"undefined\") {\n\ttry { /* for node.js */\n\t\tcustom_inspect_symbol = require('util').inspect.custom;\n\t} catch (e) {}\n}\n\nconst global_env = (function() {\n\t/* global WorkerGlobalScope */ /* see https://github.com/sindresorhus/globals/issues/127 */\n\tif (typeof process !== \"undefined\") {\n\t\t/* node */\n\t\treturn global;\n\t} else if (typeof window !== \"undefined\") {\n\t\t/* browser window */\n\t\treturn window;\n\t} else if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n\t\t/* web worker */\n\t\treturn self;\n\t} else {\n\t\t/* unknown global env */\n\t\treturn (0, eval)('this'); /* use non-strict mode to get global env */\n\t}\n})();\n\nlet apply, construct, Reflect_deleteProperty;\nif (typeof Reflect !== \"undefined\") {\n\tapply = Reflect.apply;\n\tconstruct = Reflect.construct;\n\tReflect_deleteProperty = Reflect.deleteProperty;\n} else {\n\tconst fApply = Function.apply;\n\tconst bind = Function.bind;\n\tapply = function(target, thisArgument, argumentsList) {\n\t\treturn fApply.call(target, thisArgument, argumentsList);\n\t};\n\tconstruct = function(target, argumentsList /*, newTarget */) {\n\t\tswitch (argumentsList.length) {\n\t\t\tcase 0: return new target();\n\t\t\tcase 1: return new target(argumentsList[0]);\n\t\t\tcase 2: return new target(argumentsList[0], argumentsList[1]);\n\t\t\tcase 3: return new target(argumentsList[0], argumentsList[1], argumentsList[2]);\n\t\t\tcase 4: return new target(argumentsList[0], argumentsList[1], argumentsList[2], argumentsList[3]);\n\t\t}\n\t\tlet args = [null];\n\t\targs.push.apply(args, argumentsList);\n\t\treturn new (bind.apply(target, args))();\n\t};\n\t/* need to be in non-strict mode */\n\tReflect_deleteProperty = Function(\"t\", \"k\", \"delete t[k]\");\n}\n\n/*\nString.concat coerces to string with correct hint for Symbol.toPrimitive\n`this` isn't allowed to be null, so bind the empty string\n*/\nconst toString = String.prototype.concat.bind(\"\");\n\nconst isobject = function(o) {\n\treturn typeof o === \"object\" ? o !== null : typeof o === \"function\";\n};\n\nconst js_tname = to_luastring(\"js object\");\nconst js_library_not_loaded = \"js library not loaded into lua_State\";\n\nconst testjs = function(L, idx) {\n\tlet u = luaL_testudata(L, idx, js_tname);\n\tif (u)\n\t\treturn u.data;\n\telse\n\t\treturn void 0;\n};\n\nconst checkjs = function(L, idx) {\n\treturn luaL_checkudata(L, idx, js_tname).data;\n};\n\nconst pushjs = function(L, v) {\n\tlet b = lua_newuserdata(L);\n\tb.data = v;\n\tluaL_setmetatable(L, js_tname);\n};\n\nconst getmainthread = function(L) {\n\tlua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_MAINTHREAD);\n\tlet mainL = lua_tothread(L, -1);\n\tlua_pop(L, 1);\n\treturn mainL;\n};\n\n/* weak map from states to proxy objects (for each object) in that state */\nconst states = new WeakMap();\n\nconst push = function(L, v) {\n\tswitch (typeof v) {\n\t\tcase \"undefined\":\n\t\t\tlua_pushnil(L);\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tlua_pushnumber(L, v);\n\t\t\tbreak;\n\t\tcase \"string\":\n\t\t\tlua_pushstring(L, to_luastring(v));\n\t\t\tbreak;\n\t\tcase \"boolean\":\n\t\t\tlua_pushboolean(L, v);\n\t\t\tbreak;\n\t\tcase \"symbol\":\n\t\t\tlua_pushlightuserdata(L, v);\n\t\t\tbreak;\n\t\tcase \"function\":\n\t\t\tif (lua_isproxy(v, L)) {\n\t\t\t\tv(L);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t/* fall through */\n\t\tcase \"object\":\n\t\t\tif (v === null) {\n\t\t\t\t/* can't use null in a WeakMap; grab from registry */\n\t\t\t\tif (lua_rawgetp(L, LUA_REGISTRYINDEX, null) !== LUA_TUSERDATA)\n\t\t\t\t\tthrow Error(js_library_not_loaded);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t/* fall through */\n\t\tdefault: {\n\t\t\t/* Try and push same object again */\n\t\t\tlet objects_seen = states.get(getmainthread(L));\n\t\t\tif (!objects_seen) throw Error(js_library_not_loaded);\n\t\t\tlet p = objects_seen.get(v);\n\t\t\tif (p) {\n\t\t\t\tp(L);\n\t\t\t} else {\n\t\t\t\tpushjs(L, v);\n\t\t\t\tp = lua_toproxy(L, -1);\n\t\t\t\tobjects_seen.set(v, p);\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst atnativeerror = function(L) {\n\tlet u = lua_touserdata(L, 1);\n\tpush(L, u);\n\treturn 1;\n};\n\nconst tojs = function(L, idx) {\n\tswitch(lua_type(L, idx)) {\n\t\tcase LUA_TNONE:\n\t\tcase LUA_TNIL:\n\t\t\treturn void 0;\n\t\tcase LUA_TBOOLEAN:\n\t\t\treturn lua_toboolean(L, idx);\n\t\tcase LUA_TLIGHTUSERDATA:\n\t\t\treturn lua_touserdata(L, idx);\n\t\tcase LUA_TNUMBER:\n\t\t\treturn lua_tonumber(L, idx);\n\t\tcase LUA_TSTRING:\n\t\t\treturn lua_tojsstring(L, idx);\n\t\tcase LUA_TUSERDATA: {\n\t\t\tlet u = testjs(L, idx);\n\t\t\tif (u !== void 0)\n\t\t\t\treturn u;\n\t\t}\n\t\t/* fall through */\n\t\tcase LUA_TTABLE:\n\t\tcase LUA_TFUNCTION:\n\t\tcase LUA_TTHREAD:\n\t\t/* fall through */\n\t\tdefault:\n\t\t\treturn wrap(L, lua_toproxy(L, idx));\n\t}\n};\n\n/* Calls function on the stack with `nargs` from the stack.\n On lua error, re-throws as javascript error\n On success, returns single return value */\nconst jscall = function(L, nargs) {\n\tlet status = lua_pcall(L, nargs, 1, 0);\n\tlet r = tojs(L, -1);\n\tlua_pop(L, 1);\n\tswitch(status) {\n\t\tcase LUA_OK:\n\t\t\treturn r;\n\t\tdefault:\n\t\t\tthrow r;\n\t}\n};\n\nconst invoke = function(L, p, thisarg, args, n_results) {\n\tif (!isobject(args)) throw new TypeError(\"`args` argument must be an object\");\n\tlet length = +args.length;\n\tif (!(length >= 0)) length = 0; /* Keep NaN in mind */\n\tluaL_checkstack(L, 2+length, null);\n\tlet base = lua_gettop(L);\n\tp(L);\n\tpush(L, thisarg);\n\tfor (let i=0; i<length; i++) {\n\t\tpush(L, args[i]);\n\t}\n\tswitch(lua_pcall(L, 1+length, n_results, 0)) {\n\t\tcase LUA_OK: {\n\t\t\tlet nres = lua_gettop(L)-base;\n\t\t\tlet res = new Array(nres);\n\t\t\tfor (let i=0; i<nres; i++) {\n\t\t\t\tres[i] = tojs(L, base+i+1);\n\t\t\t}\n\t\t\tlua_settop(L, base);\n\t\t\treturn res;\n\t\t}\n\t\tdefault: {\n\t\t\tlet r = tojs(L, -1);\n\t\t\tlua_settop(L, base);\n\t\t\tthrow r;\n\t\t}\n\t}\n};\n\nconst gettable = function(L) {\n\tlua_gettable(L, 1);\n\treturn 1;\n};\n\nconst get = function(L, p, prop) {\n\tluaL_checkstack(L, 3, null);\n\tlua_pushcfunction(L, gettable);\n\tp(L);\n\tpush(L, prop);\n\treturn jscall(L, 2);\n};\n\nconst has = function(L, p, prop) {\n\tluaL_checkstack(L, 3, null);\n\tlua_pushcfunction(L, gettable);\n\tp(L);\n\tpush(L, prop);\n\tlet status = lua_pcall(L, 2, 1, 0);\n\tswitch(status) {\n\t\tcase LUA_OK: {\n\t\t\tlet r = lua_isnil(L, -1);\n\t\t\tlua_pop(L, 1);\n\t\t\treturn !r;\n\t\t}\n\t\tdefault: {\n\t\t\tlet r = tojs(L, -1);\n\t\t\tlua_pop(L, 1);\n\t\t\tthrow r;\n\t\t}\n\t}\n};\n\nconst set = function(L, p, prop, value) {\n\tluaL_checkstack(L, 4, null);\n\tlua_pushcfunction(L, function(L) {\n\t\tlua_settable(L, 1);\n\t\treturn 0;\n\t});\n\tp(L);\n\tpush(L, prop);\n\tpush(L, value);\n\tswitch(lua_pcall(L, 3, 0, 0)) {\n\t\tcase LUA_OK:\n\t\t\treturn;\n\t\tdefault: {\n\t\t\tlet r = tojs(L, -1);\n\t\t\tlua_pop(L, 1);\n\t\t\tthrow r;\n\t\t}\n\t}\n};\n\nconst deleteProperty = function(L, p, prop) {\n\tluaL_checkstack(L, 4, null);\n\tlua_pushcfunction(L, function(L) {\n\t\tlua_settable(L, 1);\n\t\treturn 0;\n\t});\n\tp(L);\n\tpush(L, prop);\n\tlua_pushnil(L);\n\tswitch(lua_pcall(L, 3, 0, 0)) {\n\t\tcase LUA_OK:\n\t\t\treturn;\n\t\tdefault: {\n\t\t\tlet r = tojs(L, -1);\n\t\t\tlua_pop(L, 1);\n\t\t\tthrow r;\n\t\t}\n\t}\n};\n\nconst tostring = function(L, p) {\n\tluaL_checkstack(L, 2, null);\n\tlua_pushcfunction(L, function(L) {\n\t\tluaL_tolstring(L, 1);\n\t\treturn 1;\n\t});\n\tp(L);\n\treturn jscall(L, 1);\n};\n\n/* implements lua's \"Generic For\" protocol */\nconst iter_next = function() {\n\tlet L = this.L;\n\tluaL_checkstack(L, 3, null);\n\tlet top = lua_gettop(L);\n\tthis.iter(L);\n\tthis.state(L);\n\tthis.last(L);\n\tswitch(lua_pcall(L, 2, LUA_MULTRET, 0)) {\n\t\tcase LUA_OK: {\n\t\t\tthis.last = lua_toproxy(L, top+1);\n\t\t\tlet r;\n\t\t\tif (lua_isnil(L, -1)) {\n\t\t\t\tr = {\n\t\t\t\t\tdone: true,\n\t\t\t\t\tvalue: void 0\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tlet n_results = lua_gettop(L) - top;\n\t\t\t\tlet result = new Array(n_results);\n\t\t\t\tfor (let i=0; i<n_results; i++) {\n\t\t\t\t\tresult[i] = tojs(L, top+i+1);\n\t\t\t\t}\n\t\t\t\tr = {\n\t\t\t\t\tdone: false,\n\t\t\t\t\tvalue: result\n\t\t\t\t};\n\t\t\t}\n\t\t\tlua_settop(L, top);\n\t\t\treturn r;\n\t\t}\n\t\tdefault: {\n\t\t\tlet e = tojs(L, -1);\n\t\t\tlua_pop(L, 1);\n\t\t\tthrow e;\n\t\t}\n\t}\n};\n\n/* make iteration use pairs() */\nconst jsiterator = function(L, p) {\n\tluaL_checkstack(L, 1, null);\n\tlua_pushcfunction(L, function(L) {\n\t\tluaL_requiref(L, to_luastring(\"_G\"), luaopen_base, 0);\n\t\tlua_getfield(L, -1, to_luastring(\"pairs\"));\n\t\tp(L);\n\t\tlua_call(L, 1, 3);\n\t\treturn 3;\n\t});\n\tswitch(lua_pcall(L, 0, 3, 0)) {\n\t\tcase LUA_OK: {\n\t\t\tlet iter = lua_toproxy(L, -3);\n\t\t\tlet state = lua_toproxy(L, -2);\n\t\t\tlet last = lua_toproxy(L, -1);\n\t\t\tlua_pop(L, 3);\n\t\t\treturn {\n\t\t\t\tL: L,\n\t\t\t\titer: iter,\n\t\t\t\tstate: state,\n\t\t\t\tlast: last,\n\t\t\t\tnext: iter_next\n\t\t\t};\n\t\t}\n\t\tdefault: {\n\t\t\tlet r = tojs(L, -1);\n\t\t\tlua_pop(L, 1);\n\t\t\tthrow r;\n\t\t}\n\t}\n};\n\nconst wrap = function(L1, p) {\n\tconst L = getmainthread(L1);\n\t/* we need `typeof js_proxy` to be \"function\" so that it's acceptable to native apis */\n\tlet js_proxy = function() {\n\t\t/* only get one result */\n\t\treturn invoke(L, p, this, arguments, 1)[0];\n\t};\n\tjs_proxy.apply = function(thisarg, args) {\n\t\t/* only get one result */\n\t\treturn invoke(L, p, thisarg, args, 1)[0];\n\t};\n\tjs_proxy.invoke = function(thisarg, args) {\n\t\treturn invoke(L, p, thisarg, args, LUA_MULTRET);\n\t};\n\tjs_proxy.get = function(k) {\n\t\treturn get(L, p, k);\n\t};\n\tjs_proxy.has = function(k) {\n\t\treturn has(L, p, k);\n\t};\n\tjs_proxy.set = function(k, v) {\n\t\treturn set(L, p, k, v);\n\t};\n\tjs_proxy.delete = function(k) {\n\t\treturn deleteProperty(L, p, k);\n\t};\n\tjs_proxy.toString = function() {\n\t\treturn tostring(L, p);\n\t};\n\tif (typeof Symbol === \"function\") {\n\t\tjs_proxy[Symbol.toStringTag] = \"Fengari object\";\n\t\tjs_proxy[Symbol.iterator] = function() {\n\t\t\treturn jsiterator(L, p);\n\t\t};\n\t\tif (Symbol.toPrimitive) {\n\t\t\tjs_proxy[Symbol.toPrimitive] = function(hint) {\n\t\t\t\tif (hint === \"string\") {\n\t\t\t\t\treturn tostring(L, p);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\tif (custom_inspect_symbol) {\n\t\tjs_proxy[custom_inspect_symbol] = js_proxy.toString;\n\t}\n\tlet objects_seen = states.get(L);\n\tif (!objects_seen) throw Error(js_library_not_loaded);\n\tobjects_seen.set(js_proxy, p);\n\treturn js_proxy;\n};\n\nconst jslib = {\n\t\"new\": function(L) {\n\t\tlet u = tojs(L, 1);\n\t\tlet nargs = lua_gettop(L)-1;\n\t\tlet args = new Array(nargs);\n\t\tfor (let i = 0; i < nargs; i++) {\n\t\t\targs[i] = tojs(L, i+2);\n\t\t}\n\t\tpush(L, construct(u, args));\n\t\treturn 1;\n\t},\n\t\"tonumber\": function(L) {\n\t\tlet u = tojs(L, 1);\n\t\tlua_pushnumber(L, +u);\n\t\treturn 1;\n\t},\n\t\"tostring\": function(L) {\n\t\tlet u = tojs(L, 1);\n\t\tlua_pushliteral(L, toString(u));\n\t\treturn 1;\n\t},\n\t\"instanceof\": function(L) {\n\t\tlet u1 = tojs(L, 1);\n\t\tlet u2 = tojs(L, 2);\n\t\tlua_pushboolean(L, u1 instanceof u2);\n\t\treturn 1;\n\t},\n\t\"typeof\": function(L) {\n\t\tlet u = tojs(L, 1);\n\t\tlua_pushliteral(L, typeof u);\n\t\treturn 1;\n\t}\n};\n\nif (typeof Symbol === \"function\" && Symbol.iterator) {\n\tconst get_iterator = function(L, idx) {\n\t\tlet u = checkjs(L, idx);\n\t\tlet getiter = u[Symbol.iterator];\n\t\tif (!getiter)\n\t\t\tluaL_argerror(L, idx, to_luastring(\"object not iterable\"));\n\t\tlet iter = apply(getiter, u, []);\n\t\tif (!isobject(iter))\n\t\t\tluaL_argerror(L, idx, to_luastring(\"Result of the Symbol.iterator method is not an object\"));\n\t\treturn iter;\n\t};\n\n\tconst next = function(L) {\n\t\tlet iter = tojs(L, 1);\n\t\tlet r = iter.next();\n\t\tif (r.done) {\n\t\t\treturn 0;\n\t\t} else {\n\t\t\tpush(L, r.value);\n\t\t\treturn 1;\n\t\t}\n\t};\n\n\tjslib[\"of\"] = function(L) {\n\t\tlet iter = get_iterator(L, 1);\n\t\tlua_pushcfunction(L, next);\n\t\tpush(L, iter);\n\t\treturn 2;\n\t};\n}\n\nif (typeof Proxy === \"function\" && typeof Symbol === \"function\") {\n\tconst L_symbol = Symbol(\"lua_State\");\n\tconst p_symbol = Symbol(\"fengari-proxy\");\n\n\tconst proxy_handlers = {\n\t\t\"apply\": function(target, thisarg, args) {\n\t\t\treturn invoke(target[L_symbol], target[p_symbol], thisarg, args, 1)[0];\n\t\t},\n\t\t\"construct\": function(target, argumentsList) {\n\t\t\tlet L = target[L_symbol];\n\t\t\tlet p = target[p_symbol];\n\t\t\tlet arg_length = argumentsList.length;\n\t\t\tluaL_checkstack(L, 2+arg_length, null);\n\t\t\tp(L);\n\t\t\tlet idx = lua_gettop(L);\n\t\t\tif (luaL_getmetafield(L, idx, to_luastring(\"construct\")) === LUA_TNIL) {\n\t\t\t\tlua_pop(L, 1);\n\t\t\t\tthrow new TypeError(\"not a constructor\");\n\t\t\t}\n\t\t\tlua_rotate(L, idx, 1);\n\t\t\tfor (let i=0; i<arg_length; i++) {\n\t\t\t\tpush(L, argumentsList[i]);\n\t\t\t}\n\t\t\treturn jscall(L, 1+arg_length);\n\t\t},\n\t\t\"defineProperty\": function(target, prop, desc) {\n\t\t\tlet L = target[L_symbol];\n\t\t\tlet p = target[p_symbol];\n\t\t\tluaL_checkstack(L, 4, null);\n\t\t\tp(L);\n\t\t\tif (luaL_getmetafield(L, -1, to_luastring(\"defineProperty\")) === LUA_TNIL) {\n\t\t\t\tlua_pop(L, 1);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tlua_rotate(L, -2, 1);\n\t\t\tpush(L, prop);\n\t\t\tpush(L, desc);\n\t\t\treturn jscall(L, 3);\n\t\t},\n\t\t\"deleteProperty\": function(target, k) {\n\t\t\treturn deleteProperty(target[L_symbol], target[p_symbol], k);\n\t\t},\n\t\t\"get\": function(target, k) {\n\t\t\treturn get(target[L_symbol], target[p_symbol], k);\n\t\t},\n\t\t\"getOwnPropertyDescriptor\": function(target, prop) {\n\t\t\tlet L = target[L_symbol];\n\t\t\tlet p = target[p_symbol];\n\t\t\tluaL_checkstack(L, 3, null);\n\t\t\tp(L);\n\t\t\tif (luaL_getmetafield(L, -1, to_luastring(\"getOwnPropertyDescriptor\")) === LUA_TNIL) {\n\t\t\t\tlua_pop(L, 1);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlua_rotate(L, -2, 1);\n\t\t\tpush(L, prop);\n\t\t\treturn jscall(L, 2);\n\t\t},\n\t\t\"getPrototypeOf\": function(target) {\n\t\t\tlet L = target[L_symbol];\n\t\t\tlet p = target[p_symbol];\n\t\t\tluaL_checkstack(L, 2, null);\n\t\t\tp(L);\n\t\t\tif (luaL_getmetafield(L, -1, to_luastring(\"getPrototypeOf\")) === LUA_TNIL) {\n\t\t\t\tlua_pop(L, 1);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tlua_rotate(L, -2, 1);\n\t\t\treturn jscall(L, 1);\n\t\t},\n\t\t\"has\": function(target, k) {\n\t\t\treturn has(target[L_symbol], target[p_symbol], k);\n\t\t},\n\t\t\"ownKeys\": function(target) {\n\t\t\tlet L = target[L_symbol];\n\t\t\tlet p = target[p_symbol];\n\t\t\tluaL_checkstack(L, 2, null);\n\t\t\tp(L);\n\t\t\tif (luaL_getmetafield(L, -1, to_luastring(\"ownKeys\")) === LUA_TNIL) {\n\t\t\t\tlua_pop(L, 1);\n\t\t\t\tthrow Error(\"ownKeys unknown for fengari object\");\n\t\t\t}\n\t\t\tlua_rotate(L, -2, 1);\n\t\t\treturn jscall(L, 1);\n\t\t},\n\t\t\"set\": function(target, k, v) {\n\t\t\tset(target[L_symbol], target[p_symbol], k, v);\n\t\t\treturn true;\n\t\t},\n\t\t\"setPrototypeOf\": function(target, prototype) {\n\t\t\tlet L = target[L_symbol];\n\t\t\tlet p = target[p_symbol];\n\t\t\tluaL_checkstack(L, 3, null);\n\t\t\tp(L);\n\t\t\tif (luaL_getmetafield(L, -1, to_luastring(\"setPrototypeOf\")) === LUA_TNIL) {\n\t\t\t\tlua_pop(L, 1);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tlua_rotate(L, -2, 1);\n\t\t\tpush(L, prototype);\n\t\t\treturn jscall(L, 2);\n\t\t}\n\t};\n\n\t/*\n\tFunctions created with `function(){}` have a non-configurable .prototype\n\tfield. This causes issues with the .ownKeys and .getOwnPropertyDescriptor\n\ttraps.\n\tHowever using `.bind()` returns a function without the .prototype property.\n\n\t```js\n\tReflect.ownKeys((function(){})) // Array [ \"prototype\", \"length\", \"name\" ]\n\tReflect.ownKeys((function(){}).bind()) // Array [ \"length\", \"name\" ]\n\t```\n\t*/\n\tconst raw_function = function() {\n\t\tlet f = (function(){}).bind();\n\t\tdelete f.length;\n\t\tdelete f.name;\n\t\treturn f;\n\t};\n\n\t/*\n\tWe use Function() here to get prevent transpilers from converting to a\n\tnon-arrow function.\n\tAdditionally, we avoid setting the internal name field by never giving the\n\tnew function a name in the block it was defined (and instead delete-ing\n\tthe configurable fields .length and .name in a wrapper function)\n\t*/\n\tconst make_arrow_function = Function(\"return ()=>void 0;\");\n\tconst raw_arrow_function = function() {\n\t\tlet f = make_arrow_function();\n\t\tdelete f.length;\n\t\tdelete f.name;\n\t\treturn f;\n\t};\n\n\t/*\n\tArrow functions do not have a .prototype field:\n\n\t```js\n\tReflect.ownKeys((() = >void 0)) // Array [ \"length\", \"name\" ]\n\t```\n\n\tHowever they cannot be used as a constructor:\n\n\t```js\n\tnew (new Proxy(() => void 0, { construct: function() { return {}; } })) // TypeError: (intermediate value) is not a constructor\n\tnew (new Proxy(function(){}, { construct: function() { return {}; } })) // {}\n\t```\n\t*/\n\tconst createproxy = function(L1, p, type) {\n\t\tconst L = getmainthread(L1);\n\t\tlet target;\n\t\tswitch (type) {\n\t\t\tcase \"function\":\n\t\t\t\ttarget = raw_function();\n\t\t\t\tbreak;\n\t\t\tcase \"arrow_function\":\n\t\t\t\ttarget = raw_arrow_function();\n\t\t\t\tbreak;\n\t\t\tcase \"object\":\n\t\t\t\ttarget = {};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow TypeError(\"invalid type to createproxy\");\n\t\t}\n\t\ttarget[p_symbol] = p;\n\t\ttarget[L_symbol] = L;\n\t\treturn new Proxy(target, proxy_handlers);\n\t};\n\n\tconst valid_types = [\"function\", \"arrow_function\", \"object\"];\n\tconst valid_types_as_luastring = valid_types.map((v) => to_luastring(v));\n\tjslib[\"createproxy\"] = function(L) {\n\t\tluaL_checkany(L, 1);\n\t\tlet type = valid_types[luaL_checkoption(L, 2, valid_types_as_luastring[0], valid_types_as_luastring)];\n\t\tlet fengariProxy = createproxy(L, lua_toproxy(L, 1), type);\n\t\tpush(L, fengariProxy);\n\t\treturn 1;\n\t};\n}\n\nlet jsmt = {\n\t\"__index\": function(L) {\n\t\tlet u = checkjs(L, 1);\n\t\tlet k = tojs(L, 2);\n\t\tpush(L, u[k]);\n\t\treturn 1;\n\t},\n\t\"__newindex\": function(L) {\n\t\tlet u = checkjs(L, 1);\n\t\tlet k = tojs(L, 2);\n\t\tlet v = tojs(L, 3);\n\t\tif (v === void 0)\n\t\t\tReflect_deleteProperty(u, k);\n\t\telse\n\t\t\tu[k] = v;\n\t\treturn 0;\n\t},\n\t\"__tostring\": function(L) {\n\t\tlet u = checkjs(L, 1);\n\t\tlet s = toString(u);\n\t\tlua_pushstring(L, to_luastring(s));\n\t\treturn 1;\n\t},\n\t\"__call\": function(L) {\n\t\tlet u = checkjs(L, 1);\n\t\tlet nargs = lua_gettop(L)-1;\n\t\tlet thisarg;\n\t\tlet args = new Array(Math.max(0, nargs-1));\n\t\tif (nargs > 0) {\n\t\t\tthisarg = tojs(L, 2);\n\t\t\tif (nargs-- > 0) {\n\t\t\t\tfor (let i = 0; i < nargs; i++) {\n\t\t\t\t\targs[i] = tojs(L, i+3);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tpush(L, apply(u, thisarg, args));\n\t\treturn 1;\n\t},\n\t\"__pairs\": function(L) {\n\t\tlet u = checkjs(L, 1);\n\t\tlet f;\n\t\tlet iter, state, first;\n\t\tif (typeof Symbol !== \"function\" || (f = u[Symbol.for(\"__pairs\")]) === void 0) {\n\t\t\t/* By default, iterate over Object.keys */\n\t\t\titer = function(last) {\n\t\t\t\tif (this.index >= this.keys.length)\n\t\t\t\t\treturn;\n\t\t\t\tlet key = this.keys[this.index++];\n\t\t\t\treturn [key, this.object[key]];\n\t\t\t};\n\t\t\tstate = {\n\t\t\t\tobject: u,\n\t\t\t\tkeys: Object.keys(u),\n\t\t\t\tindex: 0,\n\t\t\t};\n\t\t} else {\n\t\t\tlet r = apply(f, u, []);\n\t\t\tif (r === void 0)\n\t\t\t\tluaL_error(L, to_luastring(\"bad '__pairs' result (object with keys 'iter', 'state', 'first' expected)\"));\n\t\t\titer = r.iter;\n\t\t\tif (iter === void 0)\n\t\t\t\tluaL_error(L, to_luastring(\"bad '__pairs' result (object.iter is missing)\"));\n\t\t\tstate = r.state;\n\t\t\tfirst = r.first;\n\t\t}\n\t\tlua_pushcfunction(L, function() {\n\t\t\tlet state = tojs(L, 1);\n\t\t\tlet last = tojs(L, 2);\n\t\t\tlet r = apply(iter, state, [last]);\n\t\t\t/* returning undefined indicates end of iteration */\n\t\t\tif (r === void 0)\n\t\t\t\treturn 0;\n\t\t\t/* otherwise it should return an array of results */\n\t\t\tif (!Array.isArray(r))\n\t\t\t\tluaL_error(L, to_luastring(\"bad iterator result (Array or undefined expected)\"));\n\t\t\tluaL_checkstack(L, r.length, null);\n\t\t\tfor (let i=0; i<r.length; i++) {\n\t\t\t\tpush(L, r[i]);\n\t\t\t}\n\t\t\treturn r.length;\n\t\t});\n\t\tpush(L, state);\n\t\tpush(L, first);\n\t\treturn 3;\n\t},\n\t\"__len\": function(L) {\n\t\tlet u = checkjs(L, 1);\n\t\tlet f;\n\t\tlet r;\n\t\tif (typeof Symbol !== \"function\" || (f = u[Symbol.for(\"__len\")]) === void 0) {\n\t\t\t/* by default use .length field */\n\t\t\tr = u.length;\n\t\t} else {\n\t\t\tr = apply(f, u, []);\n\t\t}\n\t\tpush(L, r);\n\t\treturn 1;\n\t}\n};\n\nconst luaopen_js = function(L) {\n\t/* Add weak map to track objects seen */\n\tstates.set(getmainthread(L), new WeakMap());\n\n\tlua_atnativeerror(L, atnativeerror);\n\n\tluaL_newlib(L, jslib);\n\tlua_pushliteral(L, FENGARI_INTEROP_VERSION);\n\tlua_setfield(L, -2, to_luastring(\"_VERSION\"));\n\tlua_pushinteger(L, FENGARI_INTEROP_VERSION_NUM);\n\tlua_setfield(L, -2, to_luastring(\"_VERSION_NUM\"));\n\tlua_pushliteral(L, FENGARI_INTEROP_RELEASE);\n\tlua_setfield(L, -2, to_luastring(\"_RELEASE\"));\n\n\tluaL_newmetatable(L, js_tname);\n\tluaL_setfuncs(L, jsmt, 0);\n\tlua_pop(L, 1);\n\n\tpushjs(L, null);\n\t/* Store null object in registry under lightuserdata null */\n\tlua_pushvalue(L, -1);\n\tlua_rawsetp(L, LUA_REGISTRYINDEX, null);\n\tlua_setfield(L, -2, to_luastring(\"null\"));\n\n\tpush(L, global_env);\n\tlua_setfield(L, -2, to_luastring(\"global\"));\n\n\treturn 1;\n};\n\nmodule.exports.FENGARI_INTEROP_VERSION = FENGARI_INTEROP_VERSION;\nmodule.exports.FENGARI_INTEROP_VERSION_NUM = FENGARI_INTEROP_VERSION_NUM;\nmodule.exports.FENGARI_INTEROP_RELEASE = FENGARI_INTEROP_RELEASE;\nmodule.exports.checkjs = checkjs;\nmodule.exports.testjs = testjs;\nmodule.exports.pushjs = pushjs;\nmodule.exports.push = push;\nmodule.exports.tojs = tojs;\nmodule.exports.luaopen_js = luaopen_js;\n","\"use strict\";\n\nconst {\n LUA_MULTRET,\n LUA_OPBNOT,\n LUA_OPEQ,\n LUA_OPLE,\n LUA_OPLT,\n LUA_OPUNM,\n LUA_REGISTRYINDEX,\n LUA_RIDX_GLOBALS,\n LUA_VERSION_NUM,\n constant_types: {\n LUA_NUMTAGS,\n LUA_TBOOLEAN,\n LUA_TCCL,\n LUA_TFUNCTION,\n LUA_TLCF,\n LUA_TLCL,\n LUA_TLIGHTUSERDATA,\n LUA_TLNGSTR,\n LUA_TNIL,\n LUA_TNONE,\n LUA_TNUMFLT,\n LUA_TNUMINT,\n LUA_TSHRSTR,\n LUA_TTABLE,\n LUA_TTHREAD,\n LUA_TUSERDATA\n },\n thread_status: { LUA_OK },\n from_userstring,\n to_luastring,\n} = require('./defs.js');\nconst { api_check } = require('./llimits.js');\nconst ldebug = require('./ldebug.js');\nconst ldo = require('./ldo.js');\nconst { luaU_dump } = require('./ldump.js');\nconst lfunc = require('./lfunc.js');\nconst lobject = require('./lobject.js');\nconst lstate = require('./lstate.js');\nconst {\n luaS_bless,\n luaS_new,\n luaS_newliteral\n} = require('./lstring.js');\nconst ltm = require('./ltm.js');\nconst { LUAI_MAXSTACK } = require('./luaconf.js');\nconst lvm = require('./lvm.js');\nconst ltable = require('./ltable.js');\nconst { ZIO } = require('./lzio.js');\nconst TValue = lobject.TValue;\nconst CClosure = lobject.CClosure;\n\nconst api_incr_top = function(L) {\n L.top++;\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n};\n\nconst api_checknelems = function(L, n) {\n api_check(L, n < (L.top - L.ci.funcOff), \"not enough elements in the stack\");\n};\n\nconst fengari_argcheck = function(c) {\n if (!c) throw TypeError(\"invalid argument\");\n};\n\nconst fengari_argcheckinteger = function(n) {\n fengari_argcheck(typeof n === \"number\" && (n|0) === n);\n};\n\nconst isvalid = function(o) {\n return o !== lobject.luaO_nilobject;\n};\n\nconst lua_version = function(L) {\n if (L === null) return LUA_VERSION_NUM;\n else return L.l_G.version;\n};\n\nconst lua_atpanic = function(L, panicf) {\n let old = L.l_G.panic;\n L.l_G.panic = panicf;\n return old;\n};\n\nconst lua_atnativeerror = function(L, errorf) {\n let old = L.l_G.atnativeerror;\n L.l_G.atnativeerror = errorf;\n return old;\n};\n\n// Return value for idx on stack\nconst index2addr = function(L, idx) {\n let ci = L.ci;\n if (idx > 0) {\n let o = ci.funcOff + idx;\n api_check(L, idx <= ci.top - (ci.funcOff + 1), \"unacceptable index\");\n if (o >= L.top) return lobject.luaO_nilobject;\n else return L.stack[o];\n } else if (idx > LUA_REGISTRYINDEX) {\n api_check(L, idx !== 0 && -idx <= L.top, \"invalid index\");\n return L.stack[L.top + idx];\n } else if (idx === LUA_REGISTRYINDEX) {\n return L.l_G.l_registry;\n } else { /* upvalues */\n idx = LUA_REGISTRYINDEX - idx;\n api_check(L, idx <= lfunc.MAXUPVAL + 1, \"upvalue index too large\");\n if (ci.func.ttislcf()) /* light C function? */\n return lobject.luaO_nilobject; /* it has no upvalues */\n else {\n return idx <= ci.func.value.nupvalues ? ci.func.value.upvalue[idx - 1] : lobject.luaO_nilobject;\n }\n }\n};\n\n// Like index2addr but returns the index on stack; doesn't allow pseudo indices\nconst index2addr_ = function(L, idx) {\n let ci = L.ci;\n if (idx > 0) {\n let o = ci.funcOff + idx;\n api_check(L, idx <= ci.top - (ci.funcOff + 1), \"unacceptable index\");\n if (o >= L.top) return null;\n else return o;\n } else if (idx > LUA_REGISTRYINDEX) {\n api_check(L, idx !== 0 && -idx <= L.top, \"invalid index\");\n return L.top + idx;\n } else { /* registry or upvalue */\n throw Error(\"attempt to use pseudo-index\");\n }\n};\n\nconst lua_checkstack = function(L, n) {\n let res;\n let ci = L.ci;\n api_check(L, n >= 0, \"negative 'n'\");\n if (L.stack_last - L.top > n) /* stack large enough? */\n res = true;\n else { /* no; need to grow stack */\n let inuse = L.top + lstate.EXTRA_STACK;\n if (inuse > LUAI_MAXSTACK - n) /* can grow without overflow? */\n res = false; /* no */\n else { /* try to grow stack */\n ldo.luaD_growstack(L, n);\n res = true;\n }\n }\n\n if (res && ci.top < L.top + n)\n ci.top = L.top + n; /* adjust frame top */\n\n return res;\n};\n\nconst lua_xmove = function(from, to, n) {\n if (from === to) return;\n api_checknelems(from, n);\n api_check(from, from.l_G === to.l_G, \"moving among independent states\");\n api_check(from, to.ci.top - to.top >= n, \"stack overflow\");\n from.top -= n;\n for (let i = 0; i < n; i++) {\n to.stack[to.top] = new lobject.TValue();\n lobject.setobj2s(to, to.top, from.stack[from.top + i]);\n delete from.stack[from.top + i];\n to.top++;\n }\n};\n\n/*\n** basic stack manipulation\n*/\n\n/*\n** convert an acceptable stack index into an absolute index\n*/\nconst lua_absindex = function(L, idx) {\n return (idx > 0 || idx <= LUA_REGISTRYINDEX)\n ? idx\n : (L.top - L.ci.funcOff) + idx;\n};\n\nconst lua_gettop = function(L) {\n return L.top - (L.ci.funcOff + 1);\n};\n\nconst lua_pushvalue = function(L, idx) {\n lobject.pushobj2s(L, index2addr(L, idx));\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n};\n\nconst lua_settop = function(L, idx) {\n let func = L.ci.funcOff;\n let newtop;\n if (idx >= 0) {\n api_check(L, idx <= L.stack_last - (func + 1), \"new top too large\");\n newtop = func + 1 + idx;\n } else {\n api_check(L, -(idx + 1) <= L.top - (func + 1), \"invalid new top\");\n newtop = L.top + idx + 1; /* 'subtract' index (index is negative) */\n }\n ldo.adjust_top(L, newtop);\n};\n\nconst lua_pop = function(L, n) {\n lua_settop(L, -n - 1);\n};\n\nconst reverse = function(L, from, to) {\n for (; from < to; from++, to--) {\n let fromtv = L.stack[from];\n let temp = new TValue(fromtv.type, fromtv.value);\n lobject.setobjs2s(L, from, to);\n lobject.setobj2s(L, to, temp);\n }\n};\n\n/*\n** Let x = AB, where A is a prefix of length 'n'. Then,\n** rotate x n === BA. But BA === (A^r . B^r)^r.\n*/\nconst lua_rotate = function(L, idx, n) {\n let t = L.top - 1;\n let pIdx = index2addr_(L, idx);\n let p = L.stack[pIdx];\n api_check(L, isvalid(p) && idx > LUA_REGISTRYINDEX, \"index not in the stack\");\n api_check(L, (n >= 0 ? n : -n) <= (t - pIdx + 1), \"invalid 'n'\");\n let m = n >= 0 ? t - n : pIdx - n - 1; /* end of prefix */\n reverse(L, pIdx, m);\n reverse(L, m + 1, L.top - 1);\n reverse(L, pIdx, L.top - 1);\n};\n\nconst lua_copy = function(L, fromidx, toidx) {\n let from = index2addr(L, fromidx);\n index2addr(L, toidx).setfrom(from);\n};\n\nconst lua_remove = function(L, idx) {\n lua_rotate(L, idx, -1);\n lua_pop(L, 1);\n};\n\nconst lua_insert = function(L, idx) {\n lua_rotate(L, idx, 1);\n};\n\nconst lua_replace = function(L, idx) {\n lua_copy(L, -1, idx);\n lua_pop(L, 1);\n};\n\n/*\n** push functions (JS -> stack)\n*/\n\nconst lua_pushnil = function(L) {\n L.stack[L.top] = new TValue(LUA_TNIL, null);\n api_incr_top(L);\n};\n\nconst lua_pushnumber = function(L, n) {\n fengari_argcheck(typeof n === \"number\");\n L.stack[L.top] = new TValue(LUA_TNUMFLT, n);\n api_incr_top(L);\n};\n\nconst lua_pushinteger = function(L, n) {\n fengari_argcheckinteger(n);\n L.stack[L.top] = new TValue(LUA_TNUMINT, n);\n api_incr_top(L);\n};\n\nconst lua_pushlstring = function(L, s, len) {\n fengari_argcheckinteger(len);\n let ts;\n if (len === 0) {\n s = to_luastring(\"\", true);\n ts = luaS_bless(L, s);\n } else {\n s = from_userstring(s);\n api_check(L, s.length >= len, \"invalid length to lua_pushlstring\");\n ts = luaS_new(L, s.subarray(0, len));\n }\n lobject.pushsvalue2s(L, ts);\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n return ts.value;\n};\n\nconst lua_pushstring = function (L, s) {\n if (s === undefined || s === null) {\n L.stack[L.top] = new TValue(LUA_TNIL, null);\n L.top++;\n } else {\n let ts = luaS_new(L, from_userstring(s));\n lobject.pushsvalue2s(L, ts);\n s = ts.getstr(); /* internal copy */\n }\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n return s;\n};\n\nconst lua_pushvfstring = function (L, fmt, argp) {\n fmt = from_userstring(fmt);\n return lobject.luaO_pushvfstring(L, fmt, argp);\n};\n\nconst lua_pushfstring = function (L, fmt, ...argp) {\n fmt = from_userstring(fmt);\n return lobject.luaO_pushvfstring(L, fmt, argp);\n};\n\n/* Similar to lua_pushstring, but takes a JS string */\nconst lua_pushliteral = function (L, s) {\n if (s === undefined || s === null) {\n L.stack[L.top] = new TValue(LUA_TNIL, null);\n L.top++;\n } else {\n fengari_argcheck(typeof s === \"string\");\n let ts = luaS_newliteral(L, s);\n lobject.pushsvalue2s(L, ts);\n s = ts.getstr(); /* internal copy */\n }\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n\n return s;\n};\n\nconst lua_pushcclosure = function(L, fn, n) {\n fengari_argcheck(typeof fn === \"function\");\n fengari_argcheckinteger(n);\n if (n === 0)\n L.stack[L.top] = new TValue(LUA_TLCF, fn);\n else {\n api_checknelems(L, n);\n api_check(L, n <= lfunc.MAXUPVAL, \"upvalue index too large\");\n let cl = new CClosure(L, fn, n);\n for (let i=0; i<n; i++)\n cl.upvalue[i].setfrom(L.stack[L.top - n + i]);\n for (let i=1; i<n; i++)\n delete L.stack[--L.top];\n if (n>0)\n --L.top;\n L.stack[L.top].setclCvalue(cl);\n }\n api_incr_top(L);\n};\n\nconst lua_pushjsclosure = lua_pushcclosure;\n\nconst lua_pushcfunction = function(L, fn) {\n lua_pushcclosure(L, fn, 0);\n};\n\nconst lua_pushjsfunction = lua_pushcfunction;\n\nconst lua_pushboolean = function(L, b) {\n L.stack[L.top] = new TValue(LUA_TBOOLEAN, !!b);\n api_incr_top(L);\n};\n\nconst lua_pushlightuserdata = function(L, p) {\n L.stack[L.top] = new TValue(LUA_TLIGHTUSERDATA, p);\n api_incr_top(L);\n};\n\nconst lua_pushthread = function(L) {\n L.stack[L.top] = new TValue(LUA_TTHREAD, L);\n api_incr_top(L);\n return L.l_G.mainthread === L;\n};\n\nconst lua_pushglobaltable = function(L) {\n lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS);\n};\n\n/*\n** set functions (stack -> Lua)\n*/\n\n/*\n** t[k] = value at the top of the stack (where 'k' is a string)\n*/\nconst auxsetstr = function(L, t, k) {\n let str = luaS_new(L, from_userstring(k));\n api_checknelems(L, 1);\n lobject.pushsvalue2s(L, str); /* push 'str' (to make it a TValue) */\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n lvm.settable(L, t, L.stack[L.top - 1], L.stack[L.top - 2]);\n /* pop value and key */\n delete L.stack[--L.top];\n delete L.stack[--L.top];\n};\n\nconst lua_setglobal = function(L, name) {\n auxsetstr(L, ltable.luaH_getint(L.l_G.l_registry.value, LUA_RIDX_GLOBALS), name);\n};\n\nconst lua_setmetatable = function(L, objindex) {\n api_checknelems(L, 1);\n let mt;\n let obj = index2addr(L, objindex);\n if (L.stack[L.top - 1].ttisnil())\n mt = null;\n else {\n api_check(L, L.stack[L.top - 1].ttistable(), \"table expected\");\n mt = L.stack[L.top - 1].value;\n }\n\n switch (obj.ttnov()) {\n case LUA_TUSERDATA:\n case LUA_TTABLE: {\n obj.value.metatable = mt;\n break;\n }\n default: {\n L.l_G.mt[obj.ttnov()] = mt;\n break;\n }\n }\n\n delete L.stack[--L.top];\n return true;\n};\n\nconst lua_settable = function(L, idx) {\n api_checknelems(L, 2);\n let t = index2addr(L, idx);\n lvm.settable(L, t, L.stack[L.top - 2], L.stack[L.top - 1]);\n delete L.stack[--L.top];\n delete L.stack[--L.top];\n};\n\nconst lua_setfield = function(L, idx, k) {\n auxsetstr(L, index2addr(L, idx), k);\n};\n\nconst lua_seti = function(L, idx, n) {\n fengari_argcheckinteger(n);\n api_checknelems(L, 1);\n let t = index2addr(L, idx);\n L.stack[L.top] = new TValue(LUA_TNUMINT, n);\n api_incr_top(L);\n lvm.settable(L, t, L.stack[L.top - 1], L.stack[L.top - 2]);\n /* pop value and key */\n delete L.stack[--L.top];\n delete L.stack[--L.top];\n};\n\nconst lua_rawset = function(L, idx) {\n api_checknelems(L, 2);\n let o = index2addr(L, idx);\n api_check(L, o.ttistable(), \"table expected\");\n let k = L.stack[L.top - 2];\n let v = L.stack[L.top - 1];\n ltable.luaH_setfrom(L, o.value, k, v);\n ltable.invalidateTMcache(o.value);\n delete L.stack[--L.top];\n delete L.stack[--L.top];\n};\n\nconst lua_rawseti = function(L, idx, n) {\n fengari_argcheckinteger(n);\n api_checknelems(L, 1);\n let o = index2addr(L, idx);\n api_check(L, o.ttistable(), \"table expected\");\n ltable.luaH_setint(o.value, n, L.stack[L.top - 1]);\n delete L.stack[--L.top];\n};\n\nconst lua_rawsetp = function(L, idx, p) {\n api_checknelems(L, 1);\n let o = index2addr(L, idx);\n api_check(L, o.ttistable(), \"table expected\");\n let k = new TValue(LUA_TLIGHTUSERDATA, p);\n let v = L.stack[L.top - 1];\n ltable.luaH_setfrom(L, o.value, k, v);\n delete L.stack[--L.top];\n};\n\n/*\n** get functions (Lua -> stack)\n*/\n\nconst auxgetstr = function(L, t, k) {\n let str = luaS_new(L, from_userstring(k));\n lobject.pushsvalue2s(L, str);\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n lvm.luaV_gettable(L, t, L.stack[L.top - 1], L.top - 1);\n return L.stack[L.top - 1].ttnov();\n};\n\nconst lua_rawgeti = function(L, idx, n) {\n let t = index2addr(L, idx);\n fengari_argcheckinteger(n);\n api_check(L, t.ttistable(), \"table expected\");\n lobject.pushobj2s(L, ltable.luaH_getint(t.value, n));\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n return L.stack[L.top - 1].ttnov();\n};\n\nconst lua_rawgetp = function(L, idx, p) {\n let t = index2addr(L, idx);\n api_check(L, t.ttistable(), \"table expected\");\n let k = new TValue(LUA_TLIGHTUSERDATA, p);\n lobject.pushobj2s(L, ltable.luaH_get(L, t.value, k));\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n return L.stack[L.top - 1].ttnov();\n};\n\nconst lua_rawget = function(L, idx) {\n let t = index2addr(L, idx);\n api_check(L, t.ttistable(t), \"table expected\");\n lobject.setobj2s(L, L.top - 1, ltable.luaH_get(L, t.value, L.stack[L.top - 1]));\n return L.stack[L.top - 1].ttnov();\n};\n\n// narray and nrec are mostly useless for this implementation\nconst lua_createtable = function(L, narray, nrec) {\n let t = new lobject.TValue(LUA_TTABLE, ltable.luaH_new(L));\n L.stack[L.top] = t;\n api_incr_top(L);\n};\n\nconst luaS_newudata = function(L, size) {\n return new lobject.Udata(L, size);\n};\n\nconst lua_newuserdata = function(L, size) {\n let u = luaS_newudata(L, size);\n L.stack[L.top] = new lobject.TValue(LUA_TUSERDATA, u);\n api_incr_top(L);\n return u.data;\n};\n\nconst aux_upvalue = function(L, fi, n) {\n fengari_argcheckinteger(n);\n switch(fi.ttype()) {\n case LUA_TCCL: { /* C closure */\n let f = fi.value;\n if (!(1 <= n && n <= f.nupvalues)) return null;\n return {\n name: to_luastring(\"\", true),\n val: f.upvalue[n-1]\n };\n }\n case LUA_TLCL: { /* Lua closure */\n let f = fi.value;\n let p = f.p;\n if (!(1 <= n && n <= p.upvalues.length)) return null;\n let name = p.upvalues[n-1].name;\n return {\n name: name ? name.getstr() : to_luastring(\"(*no name)\", true),\n val: f.upvals[n-1]\n };\n }\n default: return null; /* not a closure */\n }\n};\n\nconst lua_getupvalue = function(L, funcindex, n) {\n let up = aux_upvalue(L, index2addr(L, funcindex), n);\n if (up) {\n let name = up.name;\n let val = up.val;\n lobject.pushobj2s(L, val);\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n return name;\n }\n return null;\n};\n\nconst lua_setupvalue = function(L, funcindex, n) {\n let fi = index2addr(L, funcindex);\n api_checknelems(L, 1);\n let aux = aux_upvalue(L, fi, n);\n if (aux) {\n let name = aux.name;\n let val = aux.val;\n val.setfrom(L.stack[L.top-1]);\n delete L.stack[--L.top];\n return name;\n }\n return null;\n};\n\nconst lua_newtable = function(L) {\n lua_createtable(L, 0, 0);\n};\n\nconst lua_register = function(L, n, f) {\n lua_pushcfunction(L, f);\n lua_setglobal(L, n);\n};\n\nconst lua_getmetatable = function(L, objindex) {\n let obj = index2addr(L, objindex);\n let mt;\n let res = false;\n switch (obj.ttnov()) {\n case LUA_TTABLE:\n case LUA_TUSERDATA:\n mt = obj.value.metatable;\n break;\n default:\n mt = L.l_G.mt[obj.ttnov()];\n break;\n }\n\n if (mt !== null && mt !== undefined) {\n L.stack[L.top] = new TValue(LUA_TTABLE, mt);\n api_incr_top(L);\n res = true;\n }\n\n return res;\n};\n\nconst lua_getuservalue = function(L, idx) {\n let o = index2addr(L, idx);\n api_check(L, o.ttisfulluserdata(), \"full userdata expected\");\n let uv = o.value.uservalue;\n L.stack[L.top] = new TValue(uv.type, uv.value);\n api_incr_top(L);\n return L.stack[L.top - 1].ttnov();\n};\n\nconst lua_gettable = function(L, idx) {\n let t = index2addr(L, idx);\n lvm.luaV_gettable(L, t, L.stack[L.top - 1], L.top - 1);\n return L.stack[L.top - 1].ttnov();\n};\n\nconst lua_getfield = function(L, idx, k) {\n return auxgetstr(L, index2addr(L, idx), k);\n};\n\nconst lua_geti = function(L, idx, n) {\n let t = index2addr(L, idx);\n fengari_argcheckinteger(n);\n L.stack[L.top] = new TValue(LUA_TNUMINT, n);\n api_incr_top(L);\n lvm.luaV_gettable(L, t, L.stack[L.top - 1], L.top - 1);\n return L.stack[L.top - 1].ttnov();\n};\n\nconst lua_getglobal = function(L, name) {\n return auxgetstr(L, ltable.luaH_getint(L.l_G.l_registry.value, LUA_RIDX_GLOBALS), name);\n};\n\n/*\n** access functions (stack -> JS)\n*/\n\nconst lua_toboolean = function(L, idx) {\n let o = index2addr(L, idx);\n return !o.l_isfalse();\n};\n\nconst lua_tolstring = function(L, idx) {\n let o = index2addr(L, idx);\n\n if (!o.ttisstring()) {\n if (!lvm.cvt2str(o)) { /* not convertible? */\n return null;\n }\n lobject.luaO_tostring(L, o);\n }\n return o.svalue();\n};\n\nconst lua_tostring = lua_tolstring;\n\nconst lua_tojsstring = function(L, idx) {\n let o = index2addr(L, idx);\n\n if (!o.ttisstring()) {\n if (!lvm.cvt2str(o)) { /* not convertible? */\n return null;\n }\n lobject.luaO_tostring(L, o);\n }\n return o.jsstring();\n};\n\nconst lua_todataview = function(L, idx) {\n let u8 = lua_tolstring(L, idx);\n return new DataView(u8.buffer, u8.byteOffset, u8.byteLength);\n};\n\nconst lua_rawlen = function(L, idx) {\n let o = index2addr(L, idx);\n switch (o.ttype()) {\n case LUA_TSHRSTR:\n case LUA_TLNGSTR:\n return o.vslen();\n case LUA_TUSERDATA:\n return o.value.len;\n case LUA_TTABLE:\n return ltable.luaH_getn(o.value);\n default:\n return 0;\n }\n};\n\nconst lua_tocfunction = function(L, idx) {\n let o = index2addr(L, idx);\n if (o.ttislcf() || o.ttisCclosure()) return o.value;\n else return null; /* not a C function */\n};\n\nconst lua_tointeger = function(L, idx) {\n let n = lua_tointegerx(L, idx);\n return n === false ? 0 : n;\n};\n\nconst lua_tointegerx = function(L, idx) {\n return lvm.tointeger(index2addr(L, idx));\n};\n\nconst lua_tonumber = function(L, idx) {\n let n = lua_tonumberx(L, idx);\n return n === false ? 0 : n;\n};\n\nconst lua_tonumberx = function(L, idx) {\n return lvm.tonumber(index2addr(L, idx));\n};\n\nconst lua_touserdata = function(L, idx) {\n let o = index2addr(L, idx);\n switch (o.ttnov()) {\n case LUA_TUSERDATA:\n return o.value.data;\n case LUA_TLIGHTUSERDATA:\n return o.value;\n default: return null;\n }\n};\n\nconst lua_tothread = function(L, idx) {\n let o = index2addr(L, idx);\n return o.ttisthread() ? o.value : null;\n};\n\nconst lua_topointer = function(L, idx) {\n let o = index2addr(L, idx);\n switch (o.ttype()) {\n case LUA_TTABLE:\n case LUA_TLCL:\n case LUA_TCCL:\n case LUA_TLCF:\n case LUA_TTHREAD:\n case LUA_TUSERDATA: /* note: this differs in behaviour to reference lua implementation */\n case LUA_TLIGHTUSERDATA:\n return o.value;\n default:\n return null;\n }\n};\n\n\n/* A proxy is a function that the same lua value to the given lua state. */\n\n/* Having a weakmap of created proxies was only way I could think of to provide an 'isproxy' function */\nconst seen = new WeakMap();\n\n/* is the passed object a proxy? is it from the given state? (if passed) */\nconst lua_isproxy = function(p, L) {\n let G = seen.get(p);\n if (!G)\n return false;\n return (L === null) || (L.l_G === G);\n};\n\n/* Use 'create_proxy' helper function so that 'L' is not in scope */\nconst create_proxy = function(G, type, value) {\n let proxy = function(L) {\n api_check(L, L instanceof lstate.lua_State && G === L.l_G, \"must be from same global state\");\n L.stack[L.top] = new TValue(type, value);\n api_incr_top(L);\n };\n seen.set(proxy, G);\n return proxy;\n};\n\nconst lua_toproxy = function(L, idx) {\n let tv = index2addr(L, idx);\n /* pass broken down tv incase it is an upvalue index */\n return create_proxy(L.l_G, tv.type, tv.value);\n};\n\n\nconst lua_compare = function(L, index1, index2, op) {\n let o1 = index2addr(L, index1);\n let o2 = index2addr(L, index2);\n\n let i = 0;\n\n if (isvalid(o1) && isvalid(o2)) {\n switch (op) {\n case LUA_OPEQ: i = lvm.luaV_equalobj(L, o1, o2); break;\n case LUA_OPLT: i = lvm.luaV_lessthan(L, o1, o2); break;\n case LUA_OPLE: i = lvm.luaV_lessequal(L, o1, o2); break;\n default: api_check(L, false, \"invalid option\");\n }\n }\n\n return i;\n};\n\nconst lua_stringtonumber = function(L, s) {\n let tv = new TValue();\n let sz = lobject.luaO_str2num(s, tv);\n if (sz !== 0) {\n L.stack[L.top] = tv;\n api_incr_top(L);\n }\n return sz;\n};\n\nconst f_call = function(L, ud) {\n ldo.luaD_callnoyield(L, ud.funcOff, ud.nresults);\n};\n\nconst lua_type = function(L, idx) {\n let o = index2addr(L, idx);\n return isvalid(o) ? o.ttnov() : LUA_TNONE;\n};\n\nconst lua_typename = function(L, t) {\n api_check(L, LUA_TNONE <= t && t < LUA_NUMTAGS, \"invalid tag\");\n return ltm.ttypename(t);\n};\n\nconst lua_iscfunction = function(L, idx) {\n let o = index2addr(L, idx);\n return o.ttislcf(o) || o.ttisCclosure();\n};\n\nconst lua_isnil = function(L, n) {\n return lua_type(L, n) === LUA_TNIL;\n};\n\nconst lua_isboolean = function(L, n) {\n return lua_type(L, n) === LUA_TBOOLEAN;\n};\n\nconst lua_isnone = function(L, n) {\n return lua_type(L, n) === LUA_TNONE;\n};\n\nconst lua_isnoneornil = function(L, n) {\n return lua_type(L, n) <= 0;\n};\n\nconst lua_istable = function(L, idx) {\n return index2addr(L, idx).ttistable();\n};\n\nconst lua_isinteger = function(L, idx) {\n return index2addr(L, idx).ttisinteger();\n};\n\nconst lua_isnumber = function(L, idx) {\n return lvm.tonumber(index2addr(L, idx)) !== false;\n};\n\nconst lua_isstring = function(L, idx) {\n let o = index2addr(L, idx);\n return o.ttisstring() || lvm.cvt2str(o);\n};\n\nconst lua_isuserdata = function(L, idx) {\n let o = index2addr(L, idx);\n return o.ttisfulluserdata(o) || o.ttislightuserdata();\n};\n\nconst lua_isthread = function(L, idx) {\n return lua_type(L, idx) === LUA_TTHREAD;\n};\n\nconst lua_isfunction = function(L, idx) {\n return lua_type(L, idx) === LUA_TFUNCTION;\n};\n\nconst lua_islightuserdata = function(L, idx) {\n return lua_type(L, idx) === LUA_TLIGHTUSERDATA;\n};\n\nconst lua_rawequal = function(L, index1, index2) {\n let o1 = index2addr(L, index1);\n let o2 = index2addr(L, index2);\n return isvalid(o1) && isvalid(o2) ? lvm.luaV_equalobj(null, o1, o2) : 0;\n};\n\nconst lua_arith = function(L, op) {\n if (op !== LUA_OPUNM && op !== LUA_OPBNOT)\n api_checknelems(L, 2); /* all other operations expect two operands */\n else { /* for unary operations, add fake 2nd operand */\n api_checknelems(L, 1);\n lobject.pushobj2s(L, L.stack[L.top-1]);\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n }\n /* first operand at top - 2, second at top - 1; result go to top - 2 */\n lobject.luaO_arith(L, op, L.stack[L.top - 2], L.stack[L.top - 1], L.stack[L.top - 2]);\n delete L.stack[--L.top]; /* remove second operand */\n};\n\n/*\n** 'load' and 'call' functions (run Lua code)\n*/\n\nconst default_chunkname = to_luastring(\"?\");\nconst lua_load = function(L, reader, data, chunkname, mode) {\n if (!chunkname) chunkname = default_chunkname;\n else chunkname = from_userstring(chunkname);\n if (mode !== null) mode = from_userstring(mode);\n let z = new ZIO(L, reader, data);\n let status = ldo.luaD_protectedparser(L, z, chunkname, mode);\n if (status === LUA_OK) { /* no errors? */\n let f = L.stack[L.top - 1].value; /* get newly created function */\n if (f.nupvalues >= 1) { /* does it have an upvalue? */\n /* get global table from registry */\n let gt = ltable.luaH_getint(L.l_G.l_registry.value, LUA_RIDX_GLOBALS);\n /* set global table as 1st upvalue of 'f' (may be LUA_ENV) */\n f.upvals[0].setfrom(gt);\n }\n }\n return status;\n};\n\nconst lua_dump = function(L, writer, data, strip) {\n api_checknelems(L, 1);\n let o = L.stack[L.top -1];\n if (o.ttisLclosure())\n return luaU_dump(L, o.value.p, writer, data, strip);\n return 1;\n};\n\nconst lua_status = function(L) {\n return L.status;\n};\n\nconst lua_setuservalue = function(L, idx) {\n api_checknelems(L, 1);\n let o = index2addr(L, idx);\n api_check(L, o.ttisfulluserdata(), \"full userdata expected\");\n o.value.uservalue.setfrom(L.stack[L.top - 1]);\n delete L.stack[--L.top];\n};\n\nconst checkresults = function(L,na,nr) {\n api_check(L, nr === LUA_MULTRET || (L.ci.top - L.top >= (nr) - (na)),\n \"results from function overflow current stack size\");\n};\n\nconst lua_callk = function(L, nargs, nresults, ctx, k) {\n api_check(L, k === null || !(L.ci.callstatus & lstate.CIST_LUA), \"cannot use continuations inside hooks\");\n api_checknelems(L, nargs + 1);\n api_check(L, L.status === LUA_OK, \"cannot do calls on non-normal thread\");\n checkresults(L, nargs, nresults);\n let func = L.top - (nargs + 1);\n if (k !== null && L.nny === 0) { /* need to prepare continuation? */\n L.ci.c_k = k;\n L.ci.c_ctx = ctx;\n ldo.luaD_call(L, func, nresults);\n } else { /* no continuation or no yieldable */\n ldo.luaD_callnoyield(L, func, nresults);\n }\n\n if (nresults === LUA_MULTRET && L.ci.top < L.top)\n L.ci.top = L.top;\n};\n\nconst lua_call = function(L, n, r) {\n lua_callk(L, n, r, 0, null);\n};\n\nconst lua_pcallk = function(L, nargs, nresults, errfunc, ctx, k) {\n api_check(L, k === null || !(L.ci.callstatus & lstate.CIST_LUA), \"cannot use continuations inside hooks\");\n api_checknelems(L, nargs + 1);\n api_check(L, L.status === LUA_OK, \"cannot do calls on non-normal thread\");\n checkresults(L, nargs, nresults);\n let status;\n let func;\n if (errfunc === 0)\n func = 0;\n else {\n func = index2addr_(L, errfunc);\n }\n let funcOff = L.top - (nargs + 1); /* function to be called */\n if (k === null || L.nny > 0) { /* no continuation or no yieldable? */\n let c = {\n funcOff: funcOff,\n nresults: nresults /* do a 'conventional' protected call */\n };\n status = ldo.luaD_pcall(L, f_call, c, funcOff, func);\n } else { /* prepare continuation (call is already protected by 'resume') */\n let ci = L.ci;\n ci.c_k = k; /* prepare continuation (call is already protected by 'resume') */\n ci.c_ctx = ctx; /* prepare continuation (call is already protected by 'resume') */\n /* save information for error recovery */\n ci.extra = funcOff;\n ci.c_old_errfunc = L.errfunc;\n L.errfunc = func;\n ci.callstatus &= ~lstate.CIST_OAH | L.allowhook;\n ci.callstatus |= lstate.CIST_YPCALL; /* function can do error recovery */\n ldo.luaD_call(L, funcOff, nresults); /* do the call */\n ci.callstatus &= ~lstate.CIST_YPCALL;\n L.errfunc = ci.c_old_errfunc;\n status = LUA_OK;\n }\n\n if (nresults === LUA_MULTRET && L.ci.top < L.top)\n L.ci.top = L.top;\n\n return status;\n};\n\nconst lua_pcall = function(L, n, r, f) {\n return lua_pcallk(L, n, r, f, 0, null);\n};\n\n/*\n** miscellaneous functions\n*/\n\nconst lua_error = function(L) {\n api_checknelems(L, 1);\n ldebug.luaG_errormsg(L);\n};\n\nconst lua_next = function(L, idx) {\n let t = index2addr(L, idx);\n api_check(L, t.ttistable(), \"table expected\");\n L.stack[L.top] = new TValue();\n let more = ltable.luaH_next(L, t.value, L.top - 1);\n if (more) {\n api_incr_top(L);\n return 1;\n } else {\n delete L.stack[L.top];\n delete L.stack[--L.top];\n return 0;\n }\n};\n\nconst lua_concat = function(L, n) {\n api_checknelems(L, n);\n if (n >= 2)\n lvm.luaV_concat(L, n);\n else if (n === 0) {\n lobject.pushsvalue2s(L, luaS_bless(L, to_luastring(\"\", true)));\n api_check(L, L.top <= L.ci.top, \"stack overflow\");\n }\n};\n\nconst lua_len = function(L, idx) {\n let t = index2addr(L, idx);\n let tv = new TValue();\n lvm.luaV_objlen(L, tv, t);\n L.stack[L.top] = tv;\n api_incr_top(L);\n};\n\nconst getupvalref = function(L, fidx, n) {\n let fi = index2addr(L, fidx);\n api_check(L, fi.ttisLclosure(), \"Lua function expected\");\n let f = fi.value;\n fengari_argcheckinteger(n);\n api_check(L, 1 <= n && n <= f.p.upvalues.length, \"invalid upvalue index\");\n return {\n f: f,\n i: n - 1\n };\n};\n\nconst lua_upvalueid = function(L, fidx, n) {\n let fi = index2addr(L, fidx);\n switch (fi.ttype()) {\n case LUA_TLCL: { /* lua closure */\n let ref = getupvalref(L, fidx, n);\n return ref.f.upvals[ref.i];\n }\n case LUA_TCCL: { /* C closure */\n let f = fi.value;\n api_check(L, (n|0) === n && n > 0 && n <= f.nupvalues, \"invalid upvalue index\");\n return f.upvalue[n - 1];\n }\n default: {\n api_check(L, false, \"closure expected\");\n return null;\n }\n }\n};\n\nconst lua_upvaluejoin = function(L, fidx1, n1, fidx2, n2) {\n let ref1 = getupvalref(L, fidx1, n1);\n let ref2 = getupvalref(L, fidx2, n2);\n let up2 = ref2.f.upvals[ref2.i];\n ref1.f.upvals[ref1.i] = up2;\n};\n\n// This functions are only there for compatibility purposes\nconst lua_gc = function () {};\n\nconst lua_getallocf = function () {\n console.warn(\"lua_getallocf is not available\");\n return 0;\n};\n\nconst lua_setallocf = function () {\n console.warn(\"lua_setallocf is not available\");\n return 0;\n};\n\nconst lua_getextraspace = function () {\n console.warn(\"lua_getextraspace is not available\");\n return 0;\n};\n\nmodule.exports.api_incr_top = api_incr_top;\nmodule.exports.api_checknelems = api_checknelems;\nmodule.exports.lua_absindex = lua_absindex;\nmodule.exports.lua_arith = lua_arith;\nmodule.exports.lua_atpanic = lua_atpanic;\nmodule.exports.lua_atnativeerror = lua_atnativeerror;\nmodule.exports.lua_call = lua_call;\nmodule.exports.lua_callk = lua_callk;\nmodule.exports.lua_checkstack = lua_checkstack;\nmodule.exports.lua_compare = lua_compare;\nmodule.exports.lua_concat = lua_concat;\nmodule.exports.lua_copy = lua_copy;\nmodule.exports.lua_createtable = lua_createtable;\nmodule.exports.lua_dump = lua_dump;\nmodule.exports.lua_error = lua_error;\nmodule.exports.lua_gc = lua_gc;\nmodule.exports.lua_getallocf = lua_getallocf;\nmodule.exports.lua_getextraspace = lua_getextraspace;\nmodule.exports.lua_getfield = lua_getfield;\nmodule.exports.lua_getglobal = lua_getglobal;\nmodule.exports.lua_geti = lua_geti;\nmodule.exports.lua_getmetatable = lua_getmetatable;\nmodule.exports.lua_gettable = lua_gettable;\nmodule.exports.lua_gettop = lua_gettop;\nmodule.exports.lua_getupvalue = lua_getupvalue;\nmodule.exports.lua_getuservalue = lua_getuservalue;\nmodule.exports.lua_insert = lua_insert;\nmodule.exports.lua_isboolean = lua_isboolean;\nmodule.exports.lua_iscfunction = lua_iscfunction;\nmodule.exports.lua_isfunction = lua_isfunction;\nmodule.exports.lua_isinteger = lua_isinteger;\nmodule.exports.lua_islightuserdata = lua_islightuserdata;\nmodule.exports.lua_isnil = lua_isnil;\nmodule.exports.lua_isnone = lua_isnone;\nmodule.exports.lua_isnoneornil = lua_isnoneornil;\nmodule.exports.lua_isnumber = lua_isnumber;\nmodule.exports.lua_isproxy = lua_isproxy;\nmodule.exports.lua_isstring = lua_isstring;\nmodule.exports.lua_istable = lua_istable;\nmodule.exports.lua_isthread = lua_isthread;\nmodule.exports.lua_isuserdata = lua_isuserdata;\nmodule.exports.lua_len = lua_len;\nmodule.exports.lua_load = lua_load;\nmodule.exports.lua_newtable = lua_newtable;\nmodule.exports.lua_newuserdata = lua_newuserdata;\nmodule.exports.lua_next = lua_next;\nmodule.exports.lua_pcall = lua_pcall;\nmodule.exports.lua_pcallk = lua_pcallk;\nmodule.exports.lua_pop = lua_pop;\nmodule.exports.lua_pushboolean = lua_pushboolean;\nmodule.exports.lua_pushcclosure = lua_pushcclosure;\nmodule.exports.lua_pushcfunction = lua_pushcfunction;\nmodule.exports.lua_pushfstring = lua_pushfstring;\nmodule.exports.lua_pushglobaltable = lua_pushglobaltable;\nmodule.exports.lua_pushinteger = lua_pushinteger;\nmodule.exports.lua_pushjsclosure = lua_pushjsclosure;\nmodule.exports.lua_pushjsfunction = lua_pushjsfunction;\nmodule.exports.lua_pushlightuserdata = lua_pushlightuserdata;\nmodule.exports.lua_pushliteral = lua_pushliteral;\nmodule.exports.lua_pushlstring = lua_pushlstring;\nmodule.exports.lua_pushnil = lua_pushnil;\nmodule.exports.lua_pushnumber = lua_pushnumber;\nmodule.exports.lua_pushstring = lua_pushstring;\nmodule.exports.lua_pushthread = lua_pushthread;\nmodule.exports.lua_pushvalue = lua_pushvalue;\nmodule.exports.lua_pushvfstring = lua_pushvfstring;\nmodule.exports.lua_rawequal = lua_rawequal;\nmodule.exports.lua_rawget = lua_rawget;\nmodule.exports.lua_rawgeti = lua_rawgeti;\nmodule.exports.lua_rawgetp = lua_rawgetp;\nmodule.exports.lua_rawlen = lua_rawlen;\nmodule.exports.lua_rawset = lua_rawset;\nmodule.exports.lua_rawseti = lua_rawseti;\nmodule.exports.lua_rawsetp = lua_rawsetp;\nmodule.exports.lua_register = lua_register;\nmodule.exports.lua_remove = lua_remove;\nmodule.exports.lua_replace = lua_replace;\nmodule.exports.lua_rotate = lua_rotate;\nmodule.exports.lua_setallocf = lua_setallocf;\nmodule.exports.lua_setfield = lua_setfield;\nmodule.exports.lua_setglobal = lua_setglobal;\nmodule.exports.lua_seti = lua_seti;\nmodule.exports.lua_setmetatable = lua_setmetatable;\nmodule.exports.lua_settable = lua_settable;\nmodule.exports.lua_settop = lua_settop;\nmodule.exports.lua_setupvalue = lua_setupvalue;\nmodule.exports.lua_setuservalue = lua_setuservalue;\nmodule.exports.lua_status = lua_status;\nmodule.exports.lua_stringtonumber = lua_stringtonumber;\nmodule.exports.lua_toboolean = lua_toboolean;\nmodule.exports.lua_tocfunction = lua_tocfunction;\nmodule.exports.lua_todataview = lua_todataview;\nmodule.exports.lua_tointeger = lua_tointeger;\nmodule.exports.lua_tointegerx = lua_tointegerx;\nmodule.exports.lua_tojsstring = lua_tojsstring;\nmodule.exports.lua_tolstring = lua_tolstring;\nmodule.exports.lua_tonumber = lua_tonumber;\nmodule.exports.lua_tonumberx = lua_tonumberx;\nmodule.exports.lua_topointer = lua_topointer;\nmodule.exports.lua_toproxy = lua_toproxy;\nmodule.exports.lua_tostring = lua_tostring;\nmodule.exports.lua_tothread = lua_tothread;\nmodule.exports.lua_touserdata = lua_touserdata;\nmodule.exports.lua_type = lua_type;\nmodule.exports.lua_typename = lua_typename;\nmodule.exports.lua_upvalueid = lua_upvalueid;\nmodule.exports.lua_upvaluejoin = lua_upvaluejoin;\nmodule.exports.lua_version = lua_version;\nmodule.exports.lua_xmove = lua_xmove;\n","\"use strict\";\n\nconst { lua_assert } = require(\"./llimits.js\");\n\nclass MBuffer {\n constructor() {\n this.buffer = null;\n this.n = 0;\n }\n}\n\nconst luaZ_buffer = function(buff) {\n return buff.buffer.subarray(0, buff.n);\n};\n\nconst luaZ_buffremove = function(buff, i) {\n buff.n -= i;\n};\n\nconst luaZ_resetbuffer = function(buff) {\n buff.n = 0;\n};\n\nconst luaZ_resizebuffer = function(L, buff, size) {\n let newbuff = new Uint8Array(size);\n if (buff.buffer)\n newbuff.set(buff.buffer);\n buff.buffer = newbuff;\n};\n\nclass ZIO {\n constructor(L, reader, data) {\n this.L = L; /* Lua state (for reader) */\n lua_assert(typeof reader == \"function\", \"ZIO requires a reader\");\n this.reader = reader; /* reader function */\n this.data = data; /* additional data */\n this.n = 0; /* bytes still unread */\n this.buffer = null;\n this.off = 0; /* current position in buffer */\n }\n\n zgetc () {\n return ((this.n--) > 0) ? this.buffer[this.off++] : luaZ_fill(this);\n }\n}\n\nconst EOZ = -1;\n\nconst luaZ_fill = function(z) {\n let buff = z.reader(z.L, z.data);\n if (buff === null)\n return EOZ;\n lua_assert(buff instanceof Uint8Array, \"Should only load binary of array of bytes\");\n let size = buff.length;\n if (size === 0)\n return EOZ;\n z.buffer = buff;\n z.off = 0;\n z.n = size - 1;\n return z.buffer[z.off++];\n};\n\n/* b should be an array-like that will be set to bytes\n * b_offset is the offset at which to start filling */\nconst luaZ_read = function(z, b, b_offset, n) {\n while (n) {\n if (z.n === 0) { /* no bytes in buffer? */\n if (luaZ_fill(z) === EOZ)\n return n; /* no more input; return number of missing bytes */\n else {\n z.n++; /* luaZ_fill consumed first byte; put it back */\n z.off--;\n }\n }\n let m = (n <= z.n) ? n : z.n; /* min. between n and z->n */\n for (let i=0; i<m; i++) {\n b[b_offset++] = z.buffer[z.off++];\n }\n z.n -= m;\n if (z.n === 0) // remove reference to input so it can get freed\n z.buffer = null;\n n -= m;\n }\n\n return 0;\n};\n\nmodule.exports.EOZ = EOZ;\nmodule.exports.luaZ_buffer = luaZ_buffer;\nmodule.exports.luaZ_buffremove = luaZ_buffremove;\nmodule.exports.luaZ_fill = luaZ_fill;\nmodule.exports.luaZ_read = luaZ_read;\nmodule.exports.luaZ_resetbuffer = luaZ_resetbuffer;\nmodule.exports.luaZ_resizebuffer = luaZ_resizebuffer;\nmodule.exports.MBuffer = MBuffer;\nmodule.exports.ZIO = ZIO;\n","\"use strict\";\n\nconst {\n constant_types: { LUA_TBOOLEAN, LUA_TLNGSTR },\n thread_status: { LUA_ERRSYNTAX },\n to_luastring\n} = require('./defs.js');\nconst {\n LUA_MINBUFFER,\n MAX_INT,\n lua_assert\n} = require('./llimits.js');\nconst ldebug = require('./ldebug.js');\nconst ldo = require('./ldo.js');\nconst {\n lisdigit,\n lislalnum,\n lislalpha,\n lisspace,\n lisxdigit\n} = require('./ljstype.js');\nconst lobject = require('./lobject.js');\nconst {\n luaS_bless,\n luaS_hash,\n luaS_hashlongstr,\n luaS_new\n} = require('./lstring.js');\nconst ltable = require('./ltable.js');\nconst {\n EOZ,\n luaZ_buffer,\n luaZ_buffremove,\n luaZ_resetbuffer,\n luaZ_resizebuffer\n} = require('./lzio.js');\n\nconst FIRST_RESERVED = 257;\n\nconst LUA_ENV = to_luastring(\"_ENV\", true);\n\n/* terminal symbols denoted by reserved words */\nconst TK_AND = FIRST_RESERVED;\nconst TK_BREAK = FIRST_RESERVED + 1;\nconst TK_DO = FIRST_RESERVED + 2;\nconst TK_ELSE = FIRST_RESERVED + 3;\nconst TK_ELSEIF = FIRST_RESERVED + 4;\nconst TK_END = FIRST_RESERVED + 5;\nconst TK_FALSE = FIRST_RESERVED + 6;\nconst TK_FOR = FIRST_RESERVED + 7;\nconst TK_FUNCTION = FIRST_RESERVED + 8;\nconst TK_GOTO = FIRST_RESERVED + 9;\nconst TK_IF = FIRST_RESERVED + 10;\nconst TK_IN = FIRST_RESERVED + 11;\nconst TK_LOCAL = FIRST_RESERVED + 12;\nconst TK_NIL = FIRST_RESERVED + 13;\nconst TK_NOT = FIRST_RESERVED + 14;\nconst TK_OR = FIRST_RESERVED + 15;\nconst TK_REPEAT = FIRST_RESERVED + 16;\nconst TK_RETURN = FIRST_RESERVED + 17;\nconst TK_THEN = FIRST_RESERVED + 18;\nconst TK_TRUE = FIRST_RESERVED + 19;\nconst TK_UNTIL = FIRST_RESERVED + 20;\nconst TK_WHILE = FIRST_RESERVED + 21;\n/* other terminal symbols */\nconst TK_IDIV = FIRST_RESERVED + 22;\nconst TK_CONCAT = FIRST_RESERVED + 23;\nconst TK_DOTS = FIRST_RESERVED + 24;\nconst TK_EQ = FIRST_RESERVED + 25;\nconst TK_GE = FIRST_RESERVED + 26;\nconst TK_LE = FIRST_RESERVED + 27;\nconst TK_NE = FIRST_RESERVED + 28;\nconst TK_SHL = FIRST_RESERVED + 29;\nconst TK_SHR = FIRST_RESERVED + 30;\nconst TK_DBCOLON = FIRST_RESERVED + 31;\nconst TK_EOS = FIRST_RESERVED + 32;\nconst TK_FLT = FIRST_RESERVED + 33;\nconst TK_INT = FIRST_RESERVED + 34;\nconst TK_NAME = FIRST_RESERVED + 35;\nconst TK_STRING = FIRST_RESERVED + 36;\n\nconst RESERVED = {\n \"TK_AND\": TK_AND,\n \"TK_BREAK\": TK_BREAK,\n \"TK_DO\": TK_DO,\n \"TK_ELSE\": TK_ELSE,\n \"TK_ELSEIF\": TK_ELSEIF,\n \"TK_END\": TK_END,\n \"TK_FALSE\": TK_FALSE,\n \"TK_FOR\": TK_FOR,\n \"TK_FUNCTION\": TK_FUNCTION,\n \"TK_GOTO\": TK_GOTO,\n \"TK_IF\": TK_IF,\n \"TK_IN\": TK_IN,\n \"TK_LOCAL\": TK_LOCAL,\n \"TK_NIL\": TK_NIL,\n \"TK_NOT\": TK_NOT,\n \"TK_OR\": TK_OR,\n \"TK_REPEAT\": TK_REPEAT,\n \"TK_RETURN\": TK_RETURN,\n \"TK_THEN\": TK_THEN,\n \"TK_TRUE\": TK_TRUE,\n \"TK_UNTIL\": TK_UNTIL,\n \"TK_WHILE\": TK_WHILE,\n \"TK_IDIV\": TK_IDIV,\n \"TK_CONCAT\": TK_CONCAT,\n \"TK_DOTS\": TK_DOTS,\n \"TK_EQ\": TK_EQ,\n \"TK_GE\": TK_GE,\n \"TK_LE\": TK_LE,\n \"TK_NE\": TK_NE,\n \"TK_SHL\": TK_SHL,\n \"TK_SHR\": TK_SHR,\n \"TK_DBCOLON\": TK_DBCOLON,\n \"TK_EOS\": TK_EOS,\n \"TK_FLT\": TK_FLT,\n \"TK_INT\": TK_INT,\n \"TK_NAME\": TK_NAME,\n \"TK_STRING\": TK_STRING\n};\n\nconst luaX_tokens = [\n \"and\", \"break\", \"do\", \"else\", \"elseif\",\n \"end\", \"false\", \"for\", \"function\", \"goto\", \"if\",\n \"in\", \"local\", \"nil\", \"not\", \"or\", \"repeat\",\n \"return\", \"then\", \"true\", \"until\", \"while\",\n \"//\", \"..\", \"...\", \"==\", \">=\", \"<=\", \"~=\",\n \"<<\", \">>\", \"::\", \"<eof>\",\n \"<number>\", \"<integer>\", \"<name>\", \"<string>\"\n].map((e, i)=>to_luastring(e));\n\nclass SemInfo {\n constructor() {\n this.r = NaN;\n this.i = NaN;\n this.ts = null;\n }\n}\n\nclass Token {\n constructor() {\n this.token = NaN;\n this.seminfo = new SemInfo();\n }\n}\n\n/* state of the lexer plus state of the parser when shared by all\n functions */\nclass LexState {\n constructor() {\n this.current = NaN; /* current character (charint) */\n this.linenumber = NaN; /* input line counter */\n this.lastline = NaN; /* line of last token 'consumed' */\n this.t = new Token(); /* current token */\n this.lookahead = new Token(); /* look ahead token */\n this.fs = null; /* current function (parser) */\n this.L = null;\n this.z = null; /* input stream */\n this.buff = null; /* buffer for tokens */\n this.h = null; /* to reuse strings */\n this.dyd = null; /* dynamic structures used by the parser */\n this.source = null; /* current source name */\n this.envn = null; /* environment variable name */\n }\n}\n\nconst save = function(ls, c) {\n let b = ls.buff;\n if (b.n + 1 > b.buffer.length) {\n if (b.buffer.length >= MAX_INT/2)\n lexerror(ls, to_luastring(\"lexical element too long\", true), 0);\n let newsize = b.buffer.length*2;\n luaZ_resizebuffer(ls.L, b, newsize);\n }\n b.buffer[b.n++] = c < 0 ? 255 + c + 1 : c;\n};\n\nconst luaX_token2str = function(ls, token) {\n if (token < FIRST_RESERVED) { /* single-byte symbols? */\n return lobject.luaO_pushfstring(ls.L, to_luastring(\"'%c'\", true), token);\n } else {\n let s = luaX_tokens[token - FIRST_RESERVED];\n if (token < TK_EOS) /* fixed format (symbols and reserved words)? */\n return lobject.luaO_pushfstring(ls.L, to_luastring(\"'%s'\", true), s);\n else /* names, strings, and numerals */\n return s;\n }\n};\n\nconst currIsNewline = function(ls) {\n return ls.current === 10 /* ('\\n').charCodeAt(0) */ || ls.current === 13 /* ('\\r').charCodeAt(0) */;\n};\n\nconst next = function(ls) {\n ls.current = ls.z.zgetc();\n};\n\nconst save_and_next = function(ls) {\n save(ls, ls.current);\n next(ls);\n};\n\n/*\n** creates a new string and anchors it in scanner's table so that\n** it will not be collected until the end of the compilation\n** (by that time it should be anchored somewhere)\n*/\nconst TVtrue = new lobject.TValue(LUA_TBOOLEAN, true);\nconst luaX_newstring = function(ls, str) {\n let L = ls.L;\n let ts = luaS_new(L, str);\n /* HACK: Workaround lack of ltable 'keyfromval' */\n let tpair = ls.h.strong.get(luaS_hashlongstr(ts));\n if (!tpair) { /* not in use yet? */\n let key = new lobject.TValue(LUA_TLNGSTR, ts);\n ltable.luaH_setfrom(L, ls.h, key, TVtrue);\n } else { /* string already present */\n ts = tpair.key.tsvalue(); /* re-use value previously stored */\n }\n return ts;\n};\n\n/*\n** increment line number and skips newline sequence (any of\n** \\n, \\r, \\n\\r, or \\r\\n)\n*/\nconst inclinenumber = function(ls) {\n let old = ls.current;\n lua_assert(currIsNewline(ls));\n next(ls); /* skip '\\n' or '\\r' */\n if (currIsNewline(ls) && ls.current !== old)\n next(ls); /* skip '\\n\\r' or '\\r\\n' */\n if (++ls.linenumber >= MAX_INT)\n lexerror(ls, to_luastring(\"chunk has too many lines\", true), 0);\n};\n\nconst luaX_setinput = function(L, ls, z, source, firstchar) {\n ls.t = {\n token: 0,\n seminfo: new SemInfo()\n };\n ls.L = L;\n ls.current = firstchar;\n ls.lookahead = {\n token: TK_EOS,\n seminfo: new SemInfo()\n };\n ls.z = z;\n ls.fs = null;\n ls.linenumber = 1;\n ls.lastline = 1;\n ls.source = source;\n ls.envn = luaS_bless(L, LUA_ENV);\n luaZ_resizebuffer(L, ls.buff, LUA_MINBUFFER); /* initialize buffer */\n};\n\nconst check_next1 = function(ls, c) {\n if (ls.current === c) {\n nex