factoriomod-debug 1.1.46 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/fmtk.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Wp=Object.create;var jn=Object.defineProperty;var Vp=Object.getOwnPropertyDescriptor;var zp=Object.getOwnPropertyNames;var Hp=Object.getPrototypeOf,Gp=Object.prototype.hasOwnProperty;var te=(a,e)=>()=>(a&&(e=a(a=0)),e);var F=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports),ne=(a,e)=>{for(var t in e)jn(a,t,{get:e[t],enumerable:!0})},Sl=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of zp(e))!Gp.call(a,i)&&i!==t&&jn(a,i,{get:()=>e[i],enumerable:!(n=Vp(e,i))||n.enumerable});return a};var se=(a,e,t)=>(t=a!=null?Wp(Hp(a)):{},Sl(e||!a||!a.__esModule?jn(t,"default",{value:a,enumerable:!0}):t,a)),Kp=a=>Sl(jn({},"__esModule",{value:!0}),a);var Un=a=>new Uint8Array(Buffer.from(a,"base64"));var _o={};ne(_o,{default:()=>Qp});var Qp,Rl=te(()=>{Qp=`
1
+ "use strict";var Wp=Object.create;var Un=Object.defineProperty;var Vp=Object.getOwnPropertyDescriptor;var zp=Object.getOwnPropertyNames;var Hp=Object.getPrototypeOf,Kp=Object.prototype.hasOwnProperty;var te=(a,e)=>()=>(a&&(e=a(a=0)),e);var F=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports),ne=(a,e)=>{for(var t in e)Un(a,t,{get:e[t],enumerable:!0})},Sl=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of zp(e))!Kp.call(a,i)&&i!==t&&Un(a,i,{get:()=>e[i],enumerable:!(n=Vp(e,i))||n.enumerable});return a};var se=(a,e,t)=>(t=a!=null?Wp(Hp(a)):{},Sl(e||!a||!a.__esModule?Un(t,"default",{value:a,enumerable:!0}):t,a)),Gp=a=>Sl(Un({},"__esModule",{value:!0}),a);var jn=a=>new Uint8Array(Buffer.from(a,"base64"));var _o={};ne(_o,{default:()=>Qp});var Qp,Rl=te(()=>{Qp=`
2
2
  --[[
3
3
  Arg parser from: https://github.com/JanSharp/LuaArgParser
4
4
 
@@ -449,7 +449,7 @@ return {
449
449
  get_help_string = get_help_string,
450
450
  help_option = help_option, -- one can modify this table by reference
451
451
  }
452
- `});var bo={};ne(bo,{default:()=>Zp});var Zp,El=te(()=>{Zp=`--##
452
+ `});var bo={};ne(bo,{default:()=>Zp});var Zp,Pl=te(()=>{Zp=`--##
453
453
 
454
454
  local util = require("factorio-plugin.util")
455
455
  local command_line_module_flag = util.module_flags.command_line
@@ -486,126 +486,7 @@ end
486
486
  return {
487
487
  replace = replace,
488
488
  }
489
- `});var yo={};ne(yo,{default:()=>th});var th,Pl=te(()=>{th=`--##
490
-
491
- local util = require("factorio-plugin.util")
492
- local global_module_flag = util.module_flags.global
493
- local workspace
494
- if not __plugin_dev then
495
- workspace = require("workspace")
496
- end
497
-
498
- ---[a-zA-Z0-9_]
499
- local identifier_char_lut = {["_"] = true}
500
- do
501
- ---@param from_char string
502
- ---@param to_char string
503
- local function add_range(from_char, to_char)
504
- for byte = string.byte(from_char), string.byte(to_char) do
505
- identifier_char_lut[string.char(byte)] = true
506
- end
507
- end
508
- add_range("a", "z")
509
- add_range("A", "Z")
510
- add_range("0", "9")
511
- end
512
-
513
- ---Rename \`global\` so we can tell them apart!
514
- ---@param uri string @ The uri of file
515
- ---@param text string @ The content of file
516
- ---@param diffs Diff[] @ The diffs to add more diffs to
517
- local function replace(uri, text, diffs)
518
- ---Single Workspace/Folder OK, Multi Workspace OK, mods as root OK, mods_path as root uses __mods_path__
519
- ---Match on mods folder
520
- local this_mod, path_inside_mod = uri:match("mods[\\\\/]([^\\\\/]+)[\\\\/](.*)")
521
- if not this_mod then
522
- -- Being a bit more strict with a slash being before data as nobody should ever be renaming that folder
523
- this_mod, path_inside_mod = uri:match("[\\\\/]data[\\\\/]([^\\\\/]+)[\\\\/](.*)")
524
- end
525
-
526
- if not this_mod then
527
- path_inside_mod = uri
528
- if __plugin_dev then
529
- this_mod = "PluginDevModName"
530
- else
531
- this_mod = this_mod or workspace.getRootUri(uri)
532
- this_mod = this_mod and this_mod:match("[^/\\\\]+$")
533
- -- if \`this_mod\` is still nil at this point then we simply do nothing. using a fallback would
534
- -- ultimately do nothing because all cases where it didn't find a mod name would use the fallback,
535
- -- causing it to behave just the same as it would without using a fallback
536
- end
537
- end
538
-
539
- if this_mod then
540
- local inner_name = path_inside_mod:match("scenarios[\\\\/]([^\\\\/]+)[\\\\/]")
541
- local inner_type = "s"
542
- if not inner_name then
543
- local level
544
- inner_name,level = path_inside_mod:match("campaigns[\\\\/]([^\\\\/]+)[\\\\/]([^\\\\/]+)[\\\\/]")
545
- inner_name = inner_name and inner_name .. "__" .. level
546
- inner_type = "c"
547
- end
548
- if not inner_name then
549
- inner_name = path_inside_mod:match("tutorials[\\\\/]([^\\\\/]+)[\\\\/]")
550
- inner_type = "t"
551
- end
552
-
553
- if inner_name then
554
- this_mod = this_mod.."__"..inner_type.."__"..inner_name
555
- end
556
- this_mod = this_mod:gsub("[^a-zA-Z0-9_]","_")
557
- local global_name = "__"..this_mod.."__global"
558
-
559
- util.reset_is_disabled_to_file_start()
560
- for finish, ignore_pos, ignore_char in
561
- string.gmatch(text, "global%f[^a-zA-Z0-9_]()%s*()([=.%[]?)")--[[@as fun(): integer, integer, string]]
562
- do
563
- local start = finish - #"global"
564
- if identifier_char_lut[text:sub(start - 1, start - 1)] then goto continue end
565
-
566
- local preceding_start = start - 16
567
- local preceding_text = text:sub(preceding_start, start - 1)
568
- local dot_pos = preceding_text:match("()%.%s*$")
569
- if dot_pos then
570
- dot_pos = preceding_start + dot_pos - 1
571
- if text:sub(dot_pos - 1, dot_pos - 1) ~= "." -- If it's a concat, keep it.
572
- and text:sub(dot_pos - 2, dot_pos - 1) ~= "_G" -- Keep indexes into _G
573
- and text:sub(dot_pos - 4, dot_pos - 1) ~= "_ENV" -- and _ENV
574
- then
575
- goto continue
576
- end
577
- end
578
-
579
- if (ignore_char == "" and not preceding_text:find("=%s*$") and not preceding_text:find("%.%.%s*$"))
580
- or util.is_disabled(start, global_module_flag)
581
- then
582
- goto continue
583
- end
584
-
585
- local before = text:sub(start - 1, start - 1)
586
- if before ~= "" then
587
- -- Put the newline on a separate diff before the one replacing 'global',
588
- -- otherwise hovers and syntax highlighting doesn't work.
589
- -- This can cause issues if there is already a diff for that character,
590
- -- which is why it's using add_or_append_diff.
591
- util.add_or_append_diff(diffs, start - 1, before, " --\\n")
592
- end
593
- util.add_diff(diffs, start, finish, global_name)
594
- if ignore_char == "" then
595
- ignore_pos = finish -- Move it directly next to \`global\`, not past all the whitespace after it.
596
- end
597
- -- Put the diagnostic after the '.' otherwise code completion/suggestions don't work.
598
- util.add_diff(diffs, ignore_pos, ignore_pos + #ignore_char, ignore_char.."---@diagnostic disable-line:undefined-global\\n")
599
-
600
- ::continue::
601
- end
602
- end
603
- end
604
-
605
- return {
606
- replace = replace,
607
- }
608
- `});var wo={};ne(wo,{default:()=>nh});var nh,Ll=te(()=>{nh=`--##
489
+ `});var yo={};ne(yo,{default:()=>th});var th,El=te(()=>{th=`--##
609
490
 
610
491
  local util = require("factorio-plugin.util")
611
492
  local object_name_module_flag = util.module_flags.object_name
@@ -639,7 +520,7 @@ end
639
520
  return {
640
521
  replace = replace,
641
522
  }
642
- `});var vo={};ne(vo,{default:()=>oh});var oh,xl=te(()=>{oh=`--##
523
+ `});var wo={};ne(wo,{default:()=>nh});var nh,Ll=te(()=>{nh=`--##
643
524
 
644
525
  local util = require("factorio-plugin.util")
645
526
  local remote_add_module_flag = util.module_flags.remote_add
@@ -767,7 +648,7 @@ end
767
648
  return {
768
649
  replace = replace,
769
650
  }
770
- `});var So={};ne(So,{default:()=>sh});var sh,Al=te(()=>{sh=`--##
651
+ `});var vo={};ne(vo,{default:()=>oh});var oh,xl=te(()=>{oh=`--##
771
652
 
772
653
  local util = require("factorio-plugin.util")
773
654
  local require_module_flag = util.module_flags.require
@@ -810,6 +691,125 @@ local function replace(_, text, diffs, args)
810
691
  end
811
692
  end
812
693
 
694
+ return {
695
+ replace = replace,
696
+ }
697
+ `});var So={};ne(So,{default:()=>sh});var sh,Al=te(()=>{sh=`--##
698
+
699
+ local util = require("factorio-plugin.util")
700
+ local storage_module_flag = util.module_flags.storage
701
+ local workspace
702
+ if not __plugin_dev then
703
+ workspace = require("workspace")
704
+ end
705
+
706
+ ---[a-zA-Z0-9_]
707
+ local identifier_char_lut = {["_"] = true}
708
+ do
709
+ ---@param from_char string
710
+ ---@param to_char string
711
+ local function add_range(from_char, to_char)
712
+ for byte = string.byte(from_char), string.byte(to_char) do
713
+ identifier_char_lut[string.char(byte)] = true
714
+ end
715
+ end
716
+ add_range("a", "z")
717
+ add_range("A", "Z")
718
+ add_range("0", "9")
719
+ end
720
+
721
+ ---Rename \`storage\` so we can tell them apart!
722
+ ---@param uri string @ The uri of file
723
+ ---@param text string @ The content of file
724
+ ---@param diffs Diff[] @ The diffs to add more diffs to
725
+ local function replace(uri, text, diffs)
726
+ ---Single Workspace/Folder OK, Multi Workspace OK, mods as root OK, mods_path as root uses __mods_path__
727
+ ---Match on mods folder
728
+ local this_mod, path_inside_mod = uri:match("mods[\\\\/]([^\\\\/]+)[\\\\/](.*)")
729
+ if not this_mod then
730
+ -- Being a bit more strict with a slash being before data as nobody should ever be renaming that folder
731
+ this_mod, path_inside_mod = uri:match("[\\\\/]data[\\\\/]([^\\\\/]+)[\\\\/](.*)")
732
+ end
733
+
734
+ if not this_mod then
735
+ path_inside_mod = uri
736
+ if __plugin_dev then
737
+ this_mod = "PluginDevModName"
738
+ else
739
+ this_mod = this_mod or workspace.getRootUri(uri)
740
+ this_mod = this_mod and this_mod:match("[^/\\\\]+$")
741
+ -- if \`this_mod\` is still nil at this point then we simply do nothing. using a fallback would
742
+ -- ultimately do nothing because all cases where it didn't find a mod name would use the fallback,
743
+ -- causing it to behave just the same as it would without using a fallback
744
+ end
745
+ end
746
+
747
+ if this_mod then
748
+ local inner_name = path_inside_mod:match("scenarios[\\\\/]([^\\\\/]+)[\\\\/]")
749
+ local inner_type = "s"
750
+ if not inner_name then
751
+ local level
752
+ inner_name,level = path_inside_mod:match("campaigns[\\\\/]([^\\\\/]+)[\\\\/]([^\\\\/]+)[\\\\/]")
753
+ inner_name = inner_name and inner_name .. "__" .. level
754
+ inner_type = "c"
755
+ end
756
+ if not inner_name then
757
+ inner_name = path_inside_mod:match("tutorials[\\\\/]([^\\\\/]+)[\\\\/]")
758
+ inner_type = "t"
759
+ end
760
+
761
+ if inner_name then
762
+ this_mod = this_mod.."__"..inner_type.."__"..inner_name
763
+ end
764
+ this_mod = this_mod:gsub("[^a-zA-Z0-9_]","_")
765
+ local storage_name = "__"..this_mod.."__storage"
766
+
767
+ util.reset_is_disabled_to_file_start()
768
+ for finish, ignore_pos, ignore_char in
769
+ string.gmatch(text, "storage%f[^a-zA-Z0-9_]()%s*()([=.%[]?)")--[[@as fun(): integer, integer, string]]
770
+ do
771
+ local start = finish - #"storage"
772
+ if identifier_char_lut[text:sub(start - 1, start - 1)] then goto continue end
773
+
774
+ local preceding_start = start - 16
775
+ local preceding_text = text:sub(preceding_start, start - 1)
776
+ local dot_pos = preceding_text:match("()%.%s*$")
777
+ if dot_pos then
778
+ dot_pos = preceding_start + dot_pos - 1
779
+ if text:sub(dot_pos - 1, dot_pos - 1) ~= "." -- If it's a concat, keep it.
780
+ and text:sub(dot_pos - 2, dot_pos - 1) ~= "_G" -- Keep indexes into _G
781
+ and text:sub(dot_pos - 4, dot_pos - 1) ~= "_ENV" -- and _ENV
782
+ then
783
+ goto continue
784
+ end
785
+ end
786
+
787
+ if (ignore_char == "" and not preceding_text:find("=%s*$") and not preceding_text:find("%.%.%s*$"))
788
+ or util.is_disabled(start, storage_module_flag)
789
+ then
790
+ goto continue
791
+ end
792
+
793
+ local before = text:sub(start - 1, start - 1)
794
+ if before ~= "" then
795
+ -- Put the newline on a separate diff before the one replacing 'storage',
796
+ -- otherwise hovers and syntax highlighting doesn't work.
797
+ -- This can cause issues if there is already a diff for that character,
798
+ -- which is why it's using add_or_append_diff.
799
+ util.add_or_append_diff(diffs, start - 1, before, " --\\n")
800
+ end
801
+ util.add_diff(diffs, start, finish, storage_name)
802
+ if ignore_char == "" then
803
+ ignore_pos = finish -- Move it directly next to \`storage\`, not past all the whitespace after it.
804
+ end
805
+ -- Put the diagnostic after the '.' otherwise code completion/suggestions don't work.
806
+ util.add_diff(diffs, ignore_pos, ignore_pos + #ignore_char, ignore_char.."---@diagnostic disable-line:undefined-global\\n")
807
+
808
+ ::continue::
809
+ end
810
+ end
811
+ end
812
+
813
813
  return {
814
814
  replace = replace,
815
815
  }
@@ -963,7 +963,7 @@ end
963
963
  local module_flags = {
964
964
  none = 0,
965
965
  command_line = 1,
966
- global = 2,
966
+ storage = 2,
967
967
  object_name = 4,
968
968
  remote_add = 8,
969
969
  remote_call = 16,
@@ -1128,8 +1128,8 @@ local module_name_intellisense = [[
1128
1128
  __plugin_dummy(({---@diagnostic disable-line:undefined-global
1129
1129
  ---Removal of \`/c\` and friends at the start of a line.
1130
1130
  command_line=true,
1131
- ---Replacement of expressions involving \`global\` to help the language sever distinguish global tables between different mods.
1132
- global=true,
1131
+ ---Replacement of expressions involving \`storage\` to help the language sever distinguish storage tables between different mods.
1132
+ storage=true,
1133
1133
  ---Rearrangement of \`obj.object_name == "LuaEntity"\` for the language server to perform type narrowing, same as how \`type()\` works.
1134
1134
  object_name=true,
1135
1135
  ---Hacks for \`remote.add_interface\` to look like table assignments, allowing the remote_add hack to provide intellisense.
@@ -1426,7 +1426,7 @@ return {
1426
1426
  on_pre_process_file = on_pre_process_file,
1427
1427
  on_post_process_file = on_post_process_file,
1428
1428
  }
1429
- `});var Eo={};ne(Eo,{default:()=>dh});var dh,kl=te(()=>{dh=`---@meta _\r
1429
+ `});var Po={};ne(Po,{default:()=>dh});var dh,kl=te(()=>{dh=`---@meta _\r
1430
1430
  \r
1431
1431
  ---@class event_handler\r
1432
1432
  ---@field events? event_handler.events\r
@@ -1446,7 +1446,7 @@ handler.add_lib = function(lib) end\r
1446
1446
  ---@param libs event_handler[]\r
1447
1447
  handler.add_libraries = function(libs) end\r
1448
1448
  \r
1449
- return handler`});var Po={};ne(Po,{default:()=>ph});var ph,Il=te(()=>{ph=`---@meta\r
1449
+ return handler`});var Eo={};ne(Eo,{default:()=>ph});var ph,Cl=te(()=>{ph=`---@meta\r
1450
1450
  \r
1451
1451
  --[[\r
1452
1452
  Hello script explorer, if you are looking to upgrade your mod to use the mod gui, its pretty simple.\r
@@ -1480,7 +1480,7 @@ function mod_gui.get_button_flow(player) end\r
1480
1480
  ---@return LuaGuiElement #The mod_gui frame flow\r
1481
1481
  function mod_gui.get_frame_flow(player) end\r
1482
1482
  \r
1483
- return mod_gui`});var Lo={};ne(Lo,{default:()=>mh});var mh,Cl=te(()=>{mh=`---@meta\r
1483
+ return mod_gui`});var Lo={};ne(Lo,{default:()=>mh});var mh,Il=te(()=>{mh=`---@meta\r
1484
1484
  \r
1485
1485
  ---@class util\r
1486
1486
  util = {\r
@@ -1545,12 +1545,38 @@ function util.multiply_color(c1, n) end\r
1545
1545
  ---@return Color\r
1546
1546
  function util.get_color_with_alpha(color, alpha, normalized_alpha) end\r
1547
1547
  \r
1548
- ---@param position Vector.1\r
1548
+ ---@type {[defines.direction]:Vector}\r
1549
+ util.direction_vectors = {\r
1550
+ [defines.direction.north] = { 0, -1 },\r
1551
+ [defines.direction.northnortheast] = { 1, -2 },\r
1552
+ [defines.direction.northeast] = { 1, -1 },\r
1553
+ [defines.direction.eastnortheast] = { 2, -1 },\r
1554
+ [defines.direction.east] = { 1, 0 },\r
1555
+ [defines.direction.eastsoutheast] = { 2, 1 },\r
1556
+ [defines.direction.southeast] = { 1, 1 },\r
1557
+ [defines.direction.southsoutheast] = { 1, 2 },\r
1558
+ [defines.direction.south] = { 0, 1 },\r
1559
+ [defines.direction.southsouthwest] = {-1, 2 },\r
1560
+ [defines.direction.southwest] = {-1, 1 },\r
1561
+ [defines.direction.westsouthwest] = {-2, 1 },\r
1562
+ [defines.direction.west] = {-1, 0 },\r
1563
+ [defines.direction.westnorthwest] = {-2, -1 },\r
1564
+ [defines.direction.northwest] = {-1, -1 },\r
1565
+ [defines.direction.northnorthwest] = {-1, -2 },\r
1566
+ }\r
1567
+ \r
1568
+ ---@param position Vector\r
1549
1569
  ---@param direction defines.direction\r
1550
1570
  ---@param distance number\r
1551
- ---@return Vector.1\r
1571
+ ---@return Vector\r
1552
1572
  function util.moveposition(position, direction, distance) end\r
1553
1573
  \r
1574
+ \r
1575
+ ---@param position Vector\r
1576
+ ---@param orientation number\r
1577
+ ---@return Vector\r
1578
+ function util.rotate_position(position, orientation) end\r
1579
+ \r
1554
1580
  ---@param direction defines.direction\r
1555
1581
  ---@return defines.direction\r
1556
1582
  function util.oppositedirection(direction) end\r
@@ -1562,12 +1588,12 @@ function util.multiplystripes(count, stripes) end\r
1562
1588
  \r
1563
1589
  ---@param x number\r
1564
1590
  ---@param y number\r
1565
- ---@return Vector.1\r
1591
+ ---@return Vector\r
1566
1592
  function util.by_pixel(x, y) end\r
1567
1593
  \r
1568
1594
  ---@param x number\r
1569
1595
  ---@param y number\r
1570
- ---@return Vector.1\r
1596
+ ---@return Vector\r
1571
1597
  function util.by_pixel_hr(x, y) end\r
1572
1598
  \r
1573
1599
  ---@generic T: table\r
@@ -1576,21 +1602,21 @@ function util.by_pixel_hr(x, y) end\r
1576
1602
  ---@return T\r
1577
1603
  function util.foreach_sprite_definition(table_, fun_) end\r
1578
1604
  \r
1579
- ---@param a Vector.1\r
1580
- ---@param b Vector.1\r
1581
- ---@return Vector.1\r
1605
+ ---@param a Vector\r
1606
+ ---@param b Vector\r
1607
+ ---@return Vector\r
1582
1608
  function util.add_shift(a, b) end\r
1583
1609
  \r
1584
1610
  ---@generic T: table\r
1585
- ---@param offset_ Vector.1\r
1611
+ ---@param offset_ Vector\r
1586
1612
  ---@param table_ T\r
1587
1613
  ---@return T\r
1588
1614
  function util.add_shift_offset(offset_, table_) end\r
1589
1615
  \r
1590
- ---@generic T: Vector.1\r
1616
+ ---@generic T: Vector\r
1591
1617
  ---@param shift T\r
1592
1618
  ---@param scale number\r
1593
- ---@return T|Vector.1\r
1619
+ ---@return T|Vector\r
1594
1620
  function util.mul_shift(shift, scale) end\r
1595
1621
  \r
1596
1622
  ---@param amount number\r
@@ -1641,9 +1667,10 @@ util.split = function(inputstr, sep) end\r
1641
1667
  ---@return boolean\r
1642
1668
  util.string_starts_with = function(str, start) end\r
1643
1669
  \r
1644
- ---@return LuaPlayer[]\r
1645
- ---@deprecated\r
1646
- util.online_players = function() end\r
1670
+ ---@param str string\r
1671
+ ---@param what string\r
1672
+ ---@param with string\r
1673
+ util.string_replace = function(str, what, with) end\r
1647
1674
  \r
1648
1675
  ---@generic X: number, Lower: number, Upper: number\r
1649
1676
  ---@param x X\r
@@ -1659,74 +1686,98 @@ util.get_walkable_tile = function() end\r
1659
1686
  -- shift and tint to the entire second set.\\\r
1660
1687
  -- This allows you to manipulate the entire second icons table in the same way as you would\r
1661
1688
  -- manipulate a single icon when adding to the icons table.\r
1662
- ---@param icons1 table\r
1663
- ---@param icons2 table\r
1664
- ---@param inputs {["scale"]:number?, ["shift"]:Vector.1?, ["tint"]:Color?}\r
1689
+ ---@param icons1 data.IconData[]\r
1690
+ ---@param icons2 data.IconData[]\r
1691
+ ---@param inputs {["scale"]:number?, ["shift"]:Vector?, ["tint"]:Color?}\r
1665
1692
  ---@param default_icon_size integer\r
1666
- ---@return table\r
1693
+ ---@return data.IconData[]\r
1667
1694
  function util.combine_icons(icons1, icons2, inputs, default_icon_size) end\r
1668
1695
  \r
1669
1696
  ---@param technology_icon string\r
1670
- ---@return table[]\r
1697
+ ---@return data.IconData[]\r
1671
1698
  function util.technology_icon_constant_damage(technology_icon) end\r
1672
1699
  \r
1673
1700
  ---@param technology_icon string\r
1674
- ---@return table[]\r
1701
+ ---@return data.IconData[]\r
1675
1702
  function util.technology_icon_constant_speed(technology_icon) end\r
1676
1703
  \r
1677
1704
  ---@param technology_icon string\r
1678
- ---@return table[]\r
1705
+ ---@return data.IconData[]\r
1679
1706
  function util.technology_icon_constant_movement_speed(technology_icon) end\r
1680
1707
  \r
1681
1708
  ---@param technology_icon string\r
1682
- ---@return table[]\r
1709
+ ---@return data.IconData[]\r
1683
1710
  function util.technology_icon_constant_range(technology_icon) end\r
1684
1711
  \r
1685
1712
  ---@param technology_icon string\r
1686
- ---@return table[]\r
1713
+ ---@return data.IconData[]\r
1714
+ function util.technology_icon_constant_planet(technology_icon) end\r
1715
+ \r
1716
+ ---@param technology_icon string\r
1717
+ ---@return data.IconData[]\r
1687
1718
  function util.technology_icon_constant_equipment(technology_icon) end\r
1688
1719
  \r
1689
1720
  ---@param technology_icon string\r
1690
- ---@return table[]\r
1721
+ ---@return data.IconData[]\r
1691
1722
  function util.technology_icon_constant_followers(technology_icon) end\r
1692
1723
  \r
1693
1724
  ---@param technology_icon string\r
1694
- ---@return table[]\r
1725
+ ---@return data.IconData[]\r
1695
1726
  function util.technology_icon_constant_capacity(technology_icon) end\r
1696
1727
  \r
1697
1728
  ---@param technology_icon string\r
1698
- ---@return table[]\r
1729
+ ---@return data.IconData[]\r
1699
1730
  function util.technology_icon_constant_stack_size(technology_icon) end\r
1700
1731
  \r
1701
1732
  ---@param technology_icon string\r
1702
- ---@return table[]\r
1733
+ ---@return data.IconData[]\r
1703
1734
  function util.technology_icon_constant_productivity(technology_icon) end\r
1704
1735
  \r
1705
1736
  ---@param technology_icon string\r
1706
- ---@return table[]\r
1737
+ ---@return data.IconData[]\r
1738
+ function util.technology_icon_constant_recipe_productivity(technology_icon) end\r
1739
+ \r
1740
+ ---@param technology_icon string\r
1741
+ ---@return data.IconData[]\r
1707
1742
  function util.technology_icon_constant_braking_force(technology_icon) end\r
1708
1743
  \r
1709
1744
  ---@param technology_icon string\r
1710
- ---@return table[]\r
1745
+ ---@return data.IconData[]\r
1711
1746
  function util.technology_icon_constant_mining(technology_icon) end\r
1712
1747
  \r
1713
1748
  ---@param energy string\r
1714
1749
  ---@return number\r
1715
1750
  function util.parse_energy(energy) end\r
1716
1751
  \r
1717
- ---@param product table\r
1752
+ ---@param product data.ProductPrototype\r
1718
1753
  ---@return number\r
1719
1754
  function util.product_amount(product) end\r
1720
1755
  \r
1721
- ---@param animation_length uint\r
1722
1756
  ---@return table\r
1723
- function util.empty_sprite(animation_length) end\r
1757
+ function util.empty_sprite() end\r
1758
+ \r
1759
+ ---@param animation_length number\r
1760
+ ---@return table\r
1761
+ function util.empty_animation(animation_length) end\r
1762
+ \r
1763
+ ---@return table\r
1764
+ function util.empty_icon() end\r
1724
1765
  \r
1725
1766
  ---@generic L: table\r
1726
1767
  ---@param layer L\r
1727
1768
  ---@return L\r
1728
1769
  function util.draw_as_glow(layer) end\r
1729
1770
  \r
1771
+ ---@generic T : table\r
1772
+ ---@param path string\r
1773
+ ---@param table T\r
1774
+ ---@return T\r
1775
+ function util.sprite_load(path, table) end\r
1776
+ \r
1777
+ ---@param spritesheets table[]\r
1778
+ ---@return table[]\r
1779
+ function util.spritesheets_to_pictures(spritesheets) end\r
1780
+ \r
1730
1781
  -- Does not handle:\r
1731
1782
  -- - explicit tile filters in "selection-tool" items\r
1732
1783
  -- - ItemPrototype::place_as_tile\r
@@ -1746,6 +1797,30 @@ util.remove_from_list = function(list, value) end\r
1746
1797
  ---@return {[any]: true}\r
1747
1798
  util.list_to_map = function(list) end\r
1748
1799
  \r
1800
+ ---@param raw_product data.ProductPrototype\r
1801
+ ---@return data.ProductPrototype\r
1802
+ util.normalize_recipe_product = function(raw_product) end\r
1803
+ \r
1804
+ ---@param recipe data.RecipePrototype\r
1805
+ ---@return data.ProductPrototype[]\r
1806
+ util.normalize_recipe_products = function(recipe) end\r
1807
+ \r
1808
+ ---Returns the normalized main product or nil if the recipe defintion is invalid or there is no main product\r
1809
+ ---@param recipe data.RecipePrototype\r
1810
+ ---@param normalized_products data.ProductPrototype[]\r
1811
+ ---@return data.ProductPrototype\r
1812
+ util.get_recipe_main_product = function(recipe, normalized_products) end\r
1813
+ \r
1814
+ gram = 1\r
1815
+ grams = gram\r
1816
+ kg = 1000*grams\r
1817
+ tons = 1000*kg\r
1818
+ second = 60\r
1819
+ minute = 60 * second\r
1820
+ hour = 60 * minute\r
1821
+ meter = 1\r
1822
+ kilometer = 1000\r
1823
+ \r
1749
1824
  return util\r
1750
1825
  `});var xo={};ne(xo,{default:()=>_h});var _h,Dl=te(()=>{_h=`---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#The_setting_type_property)
1751
1826
  ---@alias data.ModSettingSettingType ("startup")|("runtime-global")|("double-setting")|("runtime-per-user")
@@ -2094,7 +2169,7 @@ function debug.upvalueid(f, n) end
2094
2169
  function debug.upvaluejoin(f1, n1, f2, n2) end
2095
2170
 
2096
2171
  return debug
2097
- `});var Io={};ne(Io,{default:()=>Ph});var Ph,Bl=te(()=>{Ph=`---@meta _\r
2172
+ `});var Co={};ne(Co,{default:()=>Eh});var Eh,Bl=te(()=>{Eh=`---@meta _\r
2098
2173
  \r
2099
2174
  ---\r
2100
2175
  ---\r
@@ -2457,7 +2532,7 @@ function math.random(m, n) end\r
2457
2532
  function math.randomseed(x) end\r
2458
2533
  \r
2459
2534
  return math\r
2460
- `});var Co={};ne(Co,{default:()=>xh});var xh,ql=te(()=>{xh=`---@meta _\r
2535
+ `});var Io={};ne(Io,{default:()=>xh});var xh,ql=te(()=>{xh=`---@meta _\r
2461
2536
  \r
2462
2537
  ---Due to the changes to \`package\`, the functionality of \`require()\` changes. When using absolute paths, the path starts at the mod root. Additionally, \`..\` is disabled as a path variable. This means that it is not possible to load arbitrary files from outside the mod directory.\r
2463
2538
  ---\r
@@ -2621,7 +2696,7 @@ function serpent.load(str, options) end\r
2621
2696
  ---\r
2622
2697
  ---print(serpent.block(ast, { comment = false, custom = formatter }))\r
2623
2698
  ---\`\`\`\r
2624
- ---@alias serpent.formater fun(tag: string, head: string, body: string, tail: string, level: number)`});var $o={};ne($o,{default:()=>Ih});var Ih,Nl=te(()=>{Ih=`---@meta _\r
2699
+ ---@alias serpent.formater fun(tag: string, head: string, body: string, tail: string, level: number)`});var $o={};ne($o,{default:()=>Ch});var Ch,Nl=te(()=>{Ch=`---@meta _\r
2625
2700
  \r
2626
2701
  ---@param object LuaObject\r
2627
2702
  ---@return LuaObject.object_name object_name\r
@@ -2631,7 +2706,7 @@ function __object_name(object) end\r
2631
2706
  ---@class LuaObject\r
2632
2707
  ---@field valid boolean\r
2633
2708
  ---@field object_name LuaObject.object_name\r
2634
- `});var Oo={};ne(Oo,{default:()=>Dh});var Dh,jl=te(()=>{Dh=`---@meta _\r
2709
+ `});var Oo={};ne(Oo,{default:()=>Dh});var Dh,Ul=te(()=>{Dh=`---@meta _\r
2635
2710
  \r
2636
2711
  ---@class BlueprintCircuitConnection\r
2637
2712
  \r
@@ -2672,10 +2747,10 @@ function __object_name(object) end\r
2672
2747
  ---@field circuit_open_gate? boolean\r
2673
2748
  ---@field circuit_read_sensor? boolean\r
2674
2749
  ---@field circuit_parameters? ProgrammableSpeakerCircuitParameters\r
2675
- `});var Fo={};ne(Fo,{default:()=>Oh});var Oh,Ul=te(()=>{Oh=`---@meta _\r
2750
+ `});var Fo={};ne(Fo,{default:()=>Oh});var Oh,jl=te(()=>{Oh=`---@meta _\r
2676
2751
  \r
2677
2752
  ---@type table\r
2678
- global = {}`});var Bo={};ne(Bo,{default:()=>Bh});var Bh,Wl=te(()=>{Bh=`--##
2753
+ storage = {}`});var Bo={};ne(Bo,{default:()=>Bh});var Bh,Wl=te(()=>{Bh=`--##
2679
2754
  ---cSpell:ignore userdata, nups, nparams
2680
2755
 
2681
2756
  -- (this should probably be in some better location, maybe the readme? i'm not sure)
@@ -2700,7 +2775,7 @@ end
2700
2775
  local arg_parser = require("factorio-plugin.arg-parser")
2701
2776
  local util = require("factorio-plugin.util")
2702
2777
  local require_module = require("factorio-plugin.require")
2703
- local global = require("factorio-plugin.global")
2778
+ local storage = require("factorio-plugin.storage")
2704
2779
  local remote = require("factorio-plugin.remote")
2705
2780
  local object_name = require("factorio-plugin.object-name")
2706
2781
  local command_line = require("factorio-plugin.command-line")
@@ -2888,57 +2963,57 @@ function OnSetText(uri, text)
2888
2963
  command_line.replace(uri, text, diffs)
2889
2964
  -- The following replacements require other diffs to be created already
2890
2965
  -- to be able to check for their existence to prevent duplication/overlaps.
2891
- global.replace(uri, text, diffs)
2966
+ storage.replace(uri, text, diffs)
2892
2967
 
2893
2968
  util.on_post_process_file()
2894
2969
 
2895
2970
  diffs.count = nil
2896
2971
  return diffs
2897
2972
  end
2898
- `});var Vl={};ne(Vl,{default:()=>Mh,filenames:()=>Nh});var qh,Mh,Nh,zl=te(()=>{"use strict";Rl();El();Pl();Ll();xl();Al();Tl();kl();Il();Cl();Dl();$l();Ol();Fl();Bl();ql();Ml();Nl();jl();Ul();Wl();qh=[_o,bo,yo,wo,vo,So,Ro,Eo,Po,Lo,xo,Ao,To,ko,Io,Co,Do,$o,Oo,Fo,Bo],Mh=qh,Nh=["../luals-addon/factorio/factorio-plugin/arg-parser.lua","../luals-addon/factorio/factorio-plugin/command-line.lua","../luals-addon/factorio/factorio-plugin/global.lua","../luals-addon/factorio/factorio-plugin/object-name.lua","../luals-addon/factorio/factorio-plugin/remote.lua","../luals-addon/factorio/factorio-plugin/require.lua","../luals-addon/factorio/factorio-plugin/util.lua","../luals-addon/factorio/library/core/lualib/event_handler.lua","../luals-addon/factorio/library/core/lualib/mod-gui.lua","../luals-addon/factorio/library/core/lualib/util.lua","../luals-addon/factorio/library/data/mod-settings.lua","../luals-addon/factorio/library/data/mods.lua","../luals-addon/factorio/library/lua/builtins.lua","../luals-addon/factorio/library/lua/debug.lua","../luals-addon/factorio/library/lua/math.lua","../luals-addon/factorio/library/lua/package.lua","../luals-addon/factorio/library/lua/serpent.lua","../luals-addon/factorio/library/runtime/LuaObject.lua","../luals-addon/factorio/library/runtime/blueprint.lua","../luals-addon/factorio/library/runtime/global.lua","../luals-addon/factorio/plugin.lua"]});var Hl=F((xb,jh)=>{jh.exports={name:"Factorio",files:["control%.lua","data%.lua","data%-updates%.lua","data%-final%-fixes%.lua","settings%.lua","settings%-updates%.lua","settings%-final%-fixes%.lua"],settings:{"Lua.runtime.version":"Lua 5.2","Lua.runtime.path":["?.lua"],"Lua.runtime.special":{__object_name:"type"},"Lua.runtime.builtin":{io:"disable",os:"disable",coroutine:"disable",package:"disable",math:"disable",debug:"disable"},"Lua.diagnostics.globals":["__DebugAdapter","__Profiler"],"Lua.diagnostics.disable":["lowercase-global"]}}});var Xl=F((Hn,Kl)=>{"use strict";(function(a,e){typeof Hn=="object"&&typeof Kl<"u"?e(Hn):typeof define=="function"&&define.amd?define(["exports"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a.WebStreamsPolyfill={}))})(Hn,function(a){"use strict";function e(){}function t(r){return typeof r=="object"&&r!==null||typeof r=="function"}let n=e;function i(r,o){try{Object.defineProperty(r,"name",{value:o,configurable:!0})}catch{}}let s=Promise,u=Promise.prototype.then,f=Promise.reject.bind(s);function d(r){return new s(r)}function c(r){return d(o=>o(r))}function p(r){return f(r)}function _(r,o,l){return u.call(r,o,l)}function b(r,o,l){_(_(r,o,l),void 0,n)}function g(r,o){b(r,o)}function y(r,o){b(r,void 0,o)}function S(r,o,l){return _(r,o,l)}function A(r){_(r,void 0,n)}let P=r=>{if(typeof queueMicrotask=="function")P=queueMicrotask;else{let o=c(void 0);P=l=>_(o,l)}return P(r)};function L(r,o,l){if(typeof r!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(r,o,l)}function Q(r,o,l){try{return c(L(r,o,l))}catch(h){return p(h)}}let K=16384;class X{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(o){let l=this._back,h=l;l._elements.length===K-1&&(h={_elements:[],_next:void 0}),l._elements.push(o),h!==l&&(this._back=h,l._next=h),++this._size}shift(){let o=this._front,l=o,h=this._cursor,m=h+1,w=o._elements,R=w[h];return m===K&&(l=o._next,m=0),--this._size,this._cursor=m,o!==l&&(this._front=l),w[h]=void 0,R}forEach(o){let l=this._cursor,h=this._front,m=h._elements;for(;(l!==m.length||h._next!==void 0)&&!(l===m.length&&(h=h._next,m=h._elements,l=0,m.length===0));)o(m[l]),++l}peek(){let o=this._front,l=this._cursor;return o._elements[l]}}let J=Symbol("[[AbortSteps]]"),Ve=Symbol("[[ErrorSteps]]"),ze=Symbol("[[CancelSteps]]"),wt=Symbol("[[PullSteps]]"),Mt=Symbol("[[ReleaseSteps]]");function C(r,o){r._ownerReadableStream=o,o._reader=r,o._state==="readable"?Y(r):o._state==="closed"?V(r):H(r,o._storedError)}function E(r,o){let l=r._ownerReadableStream;return Ge(l,o)}function $(r){let o=r._ownerReadableStream;o._state==="readable"?we(r,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):ve(r,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),o._readableStreamController[Mt](),o._reader=void 0,r._ownerReadableStream=void 0}function O(r){return new TypeError("Cannot "+r+" a stream using a released reader")}function Y(r){r._closedPromise=d((o,l)=>{r._closedPromise_resolve=o,r._closedPromise_reject=l})}function H(r,o){Y(r),we(r,o)}function V(r){Y(r),ue(r)}function we(r,o){r._closedPromise_reject!==void 0&&(A(r._closedPromise),r._closedPromise_reject(o),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0)}function ve(r,o){H(r,o)}function ue(r){r._closedPromise_resolve!==void 0&&(r._closedPromise_resolve(void 0),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0)}let Nt=Number.isFinite||function(r){return typeof r=="number"&&isFinite(r)},ef=Math.trunc||function(r){return r<0?Math.ceil(r):Math.floor(r)};function tf(r){return typeof r=="object"||typeof r=="function"}function Qe(r,o){if(r!==void 0&&!tf(r))throw new TypeError(`${o} is not an object.`)}function Fe(r,o){if(typeof r!="function")throw new TypeError(`${o} is not a function.`)}function rf(r){return typeof r=="object"&&r!==null||typeof r=="function"}function cs(r,o){if(!rf(r))throw new TypeError(`${o} is not an object.`)}function it(r,o,l){if(r===void 0)throw new TypeError(`Parameter ${o} is required in '${l}'.`)}function Di(r,o,l){if(r===void 0)throw new TypeError(`${o} is required in '${l}'.`)}function $i(r){return Number(r)}function ds(r){return r===0?0:r}function nf(r){return ds(ef(r))}function Oi(r,o){let h=Number.MAX_SAFE_INTEGER,m=Number(r);if(m=ds(m),!Nt(m))throw new TypeError(`${o} is not a finite number`);if(m=nf(m),m<0||m>h)throw new TypeError(`${o} is outside the accepted range of 0 to ${h}, inclusive`);return!Nt(m)||m===0?0:m}function Fi(r,o){if(!xt(r))throw new TypeError(`${o} is not a ReadableStream.`)}function sr(r){return new vt(r)}function fs(r,o){r._reader._readRequests.push(o)}function Bi(r,o,l){let m=r._reader._readRequests.shift();l?m._closeSteps():m._chunkSteps(o)}function fn(r){return r._reader._readRequests.length}function ps(r){let o=r._reader;return!(o===void 0||!St(o))}class vt{constructor(o){if(it(o,1,"ReadableStreamDefaultReader"),Fi(o,"First parameter"),At(o))throw new TypeError("This stream has already been locked for exclusive reading by another reader");C(this,o),this._readRequests=new X}get closed(){return St(this)?this._closedPromise:p(pn("closed"))}cancel(o=void 0){return St(this)?this._ownerReadableStream===void 0?p(O("cancel")):E(this,o):p(pn("cancel"))}read(){if(!St(this))return p(pn("read"));if(this._ownerReadableStream===void 0)return p(O("read from"));let o,l,h=d((w,R)=>{o=w,l=R});return Cr(this,{_chunkSteps:w=>o({value:w,done:!1}),_closeSteps:()=>o({value:void 0,done:!0}),_errorSteps:w=>l(w)}),h}releaseLock(){if(!St(this))throw pn("releaseLock");this._ownerReadableStream!==void 0&&of(this)}}Object.defineProperties(vt.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),i(vt.prototype.cancel,"cancel"),i(vt.prototype.read,"read"),i(vt.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(vt.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function St(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readRequests")?!1:r instanceof vt}function Cr(r,o){let l=r._ownerReadableStream;l._disturbed=!0,l._state==="closed"?o._closeSteps():l._state==="errored"?o._errorSteps(l._storedError):l._readableStreamController[wt](o)}function of(r){$(r);let o=new TypeError("Reader was released");hs(r,o)}function hs(r,o){let l=r._readRequests;r._readRequests=new X,l.forEach(h=>{h._errorSteps(o)})}function pn(r){return new TypeError(`ReadableStreamDefaultReader.prototype.${r} can only be used on a ReadableStreamDefaultReader`)}let af=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class ms{constructor(o,l){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=o,this._preventCancel=l}next(){let o=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?S(this._ongoingPromise,o,o):o(),this._ongoingPromise}return(o){let l=()=>this._returnSteps(o);return this._ongoingPromise?S(this._ongoingPromise,l,l):l()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let o=this._reader,l,h,m=d((R,x)=>{l=R,h=x});return Cr(o,{_chunkSteps:R=>{this._ongoingPromise=void 0,P(()=>l({value:R,done:!1}))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,$(o),l({value:void 0,done:!0})},_errorSteps:R=>{this._ongoingPromise=void 0,this._isFinished=!0,$(o),h(R)}}),m}_returnSteps(o){if(this._isFinished)return Promise.resolve({value:o,done:!0});this._isFinished=!0;let l=this._reader;if(!this._preventCancel){let h=E(l,o);return $(l),S(h,()=>({value:o,done:!0}))}return $(l),c({value:o,done:!0})}}let gs={next(){return _s(this)?this._asyncIteratorImpl.next():p(bs("next"))},return(r){return _s(this)?this._asyncIteratorImpl.return(r):p(bs("return"))}};Object.setPrototypeOf(gs,af);function sf(r,o){let l=sr(r),h=new ms(l,o),m=Object.create(gs);return m._asyncIteratorImpl=h,m}function _s(r){if(!t(r)||!Object.prototype.hasOwnProperty.call(r,"_asyncIteratorImpl"))return!1;try{return r._asyncIteratorImpl instanceof ms}catch{return!1}}function bs(r){return new TypeError(`ReadableStreamAsyncIterator.${r} can only be used on a ReadableSteamAsyncIterator`)}let ys=Number.isNaN||function(r){return r!==r};var qi,v,Mi;function Dr(r){return r.slice()}function ws(r,o,l,h,m){new Uint8Array(r).set(new Uint8Array(l,h,m),o)}let ot=r=>(typeof r.transfer=="function"?ot=o=>o.transfer():typeof structuredClone=="function"?ot=o=>structuredClone(o,{transfer:[o]}):ot=o=>o,ot(r)),Rt=r=>(typeof r.detached=="boolean"?Rt=o=>o.detached:Rt=o=>o.byteLength===0,Rt(r));function vs(r,o,l){if(r.slice)return r.slice(o,l);let h=l-o,m=new ArrayBuffer(h);return ws(m,0,r,o,h),m}function hn(r,o){let l=r[o];if(l!=null){if(typeof l!="function")throw new TypeError(`${String(o)} is not a function`);return l}}function lf(r){let o={[Symbol.iterator]:()=>r.iterator},l=async function*(){return yield*o}(),h=l.next;return{iterator:l,nextMethod:h,done:!1}}let Ni=(Mi=(qi=Symbol.asyncIterator)!==null&&qi!==void 0?qi:(v=Symbol.for)===null||v===void 0?void 0:v.call(Symbol,"Symbol.asyncIterator"))!==null&&Mi!==void 0?Mi:"@@asyncIterator";function Ss(r,o="sync",l){if(l===void 0)if(o==="async"){if(l=hn(r,Ni),l===void 0){let w=hn(r,Symbol.iterator),R=Ss(r,"sync",w);return lf(R)}}else l=hn(r,Symbol.iterator);if(l===void 0)throw new TypeError("The object is not iterable");let h=L(l,r,[]);if(!t(h))throw new TypeError("The iterator method must return an object");let m=h.next;return{iterator:h,nextMethod:m,done:!1}}function uf(r){let o=L(r.nextMethod,r.iterator,[]);if(!t(o))throw new TypeError("The iterator.next() method must return an object");return o}function cf(r){return!!r.done}function df(r){return r.value}function ff(r){return!(typeof r!="number"||ys(r)||r<0)}function Rs(r){let o=vs(r.buffer,r.byteOffset,r.byteOffset+r.byteLength);return new Uint8Array(o)}function ji(r){let o=r._queue.shift();return r._queueTotalSize-=o.size,r._queueTotalSize<0&&(r._queueTotalSize=0),o.value}function Ui(r,o,l){if(!ff(l)||l===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");r._queue.push({value:o,size:l}),r._queueTotalSize+=l}function pf(r){return r._queue.peek().value}function Et(r){r._queue=new X,r._queueTotalSize=0}function Es(r){return r===DataView}function hf(r){return Es(r.constructor)}function mf(r){return Es(r)?1:r.BYTES_PER_ELEMENT}class jt{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!Wi(this))throw Ki("view");return this._view}respond(o){if(!Wi(this))throw Ki("respond");if(it(o,1,"respond"),o=Oi(o,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Rt(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");bn(this._associatedReadableByteStreamController,o)}respondWithNewView(o){if(!Wi(this))throw Ki("respondWithNewView");if(it(o,1,"respondWithNewView"),!ArrayBuffer.isView(o))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Rt(o.buffer))throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");yn(this._associatedReadableByteStreamController,o)}}Object.defineProperties(jt.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),i(jt.prototype.respond,"respond"),i(jt.prototype.respondWithNewView,"respondWithNewView"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(jt.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class at{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!Ut(this))throw Or("byobRequest");return Gi(this)}get desiredSize(){if(!Ut(this))throw Or("desiredSize");return $s(this)}close(){if(!Ut(this))throw Or("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let o=this._controlledReadableByteStream._state;if(o!=="readable")throw new TypeError(`The stream (in ${o} state) is not in the readable state and cannot be closed`);$r(this)}enqueue(o){if(!Ut(this))throw Or("enqueue");if(it(o,1,"enqueue"),!ArrayBuffer.isView(o))throw new TypeError("chunk must be an array buffer view");if(o.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(o.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");let l=this._controlledReadableByteStream._state;if(l!=="readable")throw new TypeError(`The stream (in ${l} state) is not in the readable state and cannot be enqueued to`);_n(this,o)}error(o=void 0){if(!Ut(this))throw Or("error");Be(this,o)}[ze](o){Ps(this),Et(this);let l=this._cancelAlgorithm(o);return gn(this),l}[wt](o){let l=this._controlledReadableByteStream;if(this._queueTotalSize>0){Ds(this,o);return}let h=this._autoAllocateChunkSize;if(h!==void 0){let m;try{m=new ArrayBuffer(h)}catch(R){o._errorSteps(R);return}let w={buffer:m,bufferByteLength:h,byteOffset:0,byteLength:h,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(w)}fs(l,o),Wt(this)}[Mt](){if(this._pendingPullIntos.length>0){let o=this._pendingPullIntos.peek();o.readerType="none",this._pendingPullIntos=new X,this._pendingPullIntos.push(o)}}}Object.defineProperties(at.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),i(at.prototype.close,"close"),i(at.prototype.enqueue,"enqueue"),i(at.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(at.prototype,Symbol.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function Ut(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableByteStream")?!1:r instanceof at}function Wi(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_associatedReadableByteStreamController")?!1:r instanceof jt}function Wt(r){if(!wf(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();b(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,Wt(r)),null),h=>(Be(r,h),null))}function Ps(r){zi(r),r._pendingPullIntos=new X}function Vi(r,o){let l=!1;r._state==="closed"&&(l=!0);let h=Ls(o);o.readerType==="default"?Bi(r,h,l):Lf(r,h,l)}function Ls(r){let o=r.bytesFilled,l=r.elementSize;return new r.viewConstructor(r.buffer,r.byteOffset,o/l)}function mn(r,o,l,h){r._queue.push({buffer:o,byteOffset:l,byteLength:h}),r._queueTotalSize+=h}function xs(r,o,l,h){let m;try{m=vs(o,l,l+h)}catch(w){throw Be(r,w),w}mn(r,m,0,h)}function As(r,o){o.bytesFilled>0&&xs(r,o.buffer,o.byteOffset,o.bytesFilled),lr(r)}function Ts(r,o){let l=Math.min(r._queueTotalSize,o.byteLength-o.bytesFilled),h=o.bytesFilled+l,m=l,w=!1,R=h%o.elementSize,x=h-R;x>=o.minimumFill&&(m=x-o.bytesFilled,w=!0);let N=r._queue;for(;m>0;){let B=N.peek(),U=Math.min(m,B.byteLength),z=o.byteOffset+o.bytesFilled;ws(o.buffer,z,B.buffer,B.byteOffset,U),B.byteLength===U?N.shift():(B.byteOffset+=U,B.byteLength-=U),r._queueTotalSize-=U,ks(r,U,o),m-=U}return w}function ks(r,o,l){l.bytesFilled+=o}function Is(r){r._queueTotalSize===0&&r._closeRequested?(gn(r),jr(r._controlledReadableByteStream)):Wt(r)}function zi(r){r._byobRequest!==null&&(r._byobRequest._associatedReadableByteStreamController=void 0,r._byobRequest._view=null,r._byobRequest=null)}function Hi(r){for(;r._pendingPullIntos.length>0;){if(r._queueTotalSize===0)return;let o=r._pendingPullIntos.peek();Ts(r,o)&&(lr(r),Vi(r._controlledReadableByteStream,o))}}function gf(r){let o=r._controlledReadableByteStream._reader;for(;o._readRequests.length>0;){if(r._queueTotalSize===0)return;let l=o._readRequests.shift();Ds(r,l)}}function _f(r,o,l,h){let m=r._controlledReadableByteStream,w=o.constructor,R=mf(w),{byteOffset:x,byteLength:N}=o,B=l*R,U;try{U=ot(o.buffer)}catch(ee){h._errorSteps(ee);return}let z={buffer:U,bufferByteLength:U.byteLength,byteOffset:x,byteLength:N,bytesFilled:0,minimumFill:B,elementSize:R,viewConstructor:w,readerType:"byob"};if(r._pendingPullIntos.length>0){r._pendingPullIntos.push(z),Bs(m,h);return}if(m._state==="closed"){let ee=new w(z.buffer,z.byteOffset,0);h._closeSteps(ee);return}if(r._queueTotalSize>0){if(Ts(r,z)){let ee=Ls(z);Is(r),h._chunkSteps(ee);return}if(r._closeRequested){let ee=new TypeError("Insufficient bytes to fill elements in the given buffer");Be(r,ee),h._errorSteps(ee);return}}r._pendingPullIntos.push(z),Bs(m,h),Wt(r)}function bf(r,o){o.readerType==="none"&&lr(r);let l=r._controlledReadableByteStream;if(Xi(l))for(;qs(l)>0;){let h=lr(r);Vi(l,h)}}function yf(r,o,l){if(ks(r,o,l),l.readerType==="none"){As(r,l),Hi(r);return}if(l.bytesFilled<l.minimumFill)return;lr(r);let h=l.bytesFilled%l.elementSize;if(h>0){let m=l.byteOffset+l.bytesFilled;xs(r,l.buffer,m-h,h)}l.bytesFilled-=h,Vi(r._controlledReadableByteStream,l),Hi(r)}function Cs(r,o){let l=r._pendingPullIntos.peek();zi(r),r._controlledReadableByteStream._state==="closed"?bf(r,l):yf(r,o,l),Wt(r)}function lr(r){return r._pendingPullIntos.shift()}function wf(r){let o=r._controlledReadableByteStream;return o._state!=="readable"||r._closeRequested||!r._started?!1:!!(ps(o)&&fn(o)>0||Xi(o)&&qs(o)>0||$s(r)>0)}function gn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0}function $r(r){let o=r._controlledReadableByteStream;if(!(r._closeRequested||o._state!=="readable")){if(r._queueTotalSize>0){r._closeRequested=!0;return}if(r._pendingPullIntos.length>0){let l=r._pendingPullIntos.peek();if(l.bytesFilled%l.elementSize!==0){let h=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Be(r,h),h}}gn(r),jr(o)}}function _n(r,o){let l=r._controlledReadableByteStream;if(r._closeRequested||l._state!=="readable")return;let{buffer:h,byteOffset:m,byteLength:w}=o;if(Rt(h))throw new TypeError("chunk's buffer is detached and so cannot be enqueued");let R=ot(h);if(r._pendingPullIntos.length>0){let x=r._pendingPullIntos.peek();if(Rt(x.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");zi(r),x.buffer=ot(x.buffer),x.readerType==="none"&&As(r,x)}if(ps(l))if(gf(r),fn(l)===0)mn(r,R,m,w);else{r._pendingPullIntos.length>0&&lr(r);let x=new Uint8Array(R,m,w);Bi(l,x,!1)}else Xi(l)?(mn(r,R,m,w),Hi(r)):mn(r,R,m,w);Wt(r)}function Be(r,o){let l=r._controlledReadableByteStream;l._state==="readable"&&(Ps(r),Et(r),gn(r),ll(l,o))}function Ds(r,o){let l=r._queue.shift();r._queueTotalSize-=l.byteLength,Is(r);let h=new Uint8Array(l.buffer,l.byteOffset,l.byteLength);o._chunkSteps(h)}function Gi(r){if(r._byobRequest===null&&r._pendingPullIntos.length>0){let o=r._pendingPullIntos.peek(),l=new Uint8Array(o.buffer,o.byteOffset+o.bytesFilled,o.byteLength-o.bytesFilled),h=Object.create(jt.prototype);Sf(h,r,l),r._byobRequest=h}return r._byobRequest}function $s(r){let o=r._controlledReadableByteStream._state;return o==="errored"?null:o==="closed"?0:r._strategyHWM-r._queueTotalSize}function bn(r,o){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(o!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(o===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(l.bytesFilled+o>l.byteLength)throw new RangeError("bytesWritten out of range")}l.buffer=ot(l.buffer),Cs(r,o)}function yn(r,o){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(o.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(o.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(l.byteOffset+l.bytesFilled!==o.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(l.bufferByteLength!==o.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(l.bytesFilled+o.byteLength>l.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let m=o.byteLength;l.buffer=ot(o.buffer),Cs(r,m)}function Os(r,o,l,h,m,w,R){o._controlledReadableByteStream=r,o._pullAgain=!1,o._pulling=!1,o._byobRequest=null,o._queue=o._queueTotalSize=void 0,Et(o),o._closeRequested=!1,o._started=!1,o._strategyHWM=w,o._pullAlgorithm=h,o._cancelAlgorithm=m,o._autoAllocateChunkSize=R,o._pendingPullIntos=new X,r._readableStreamController=o;let x=l();b(c(x),()=>(o._started=!0,Wt(o),null),N=>(Be(o,N),null))}function vf(r,o,l){let h=Object.create(at.prototype),m,w,R;o.start!==void 0?m=()=>o.start(h):m=()=>{},o.pull!==void 0?w=()=>o.pull(h):w=()=>c(void 0),o.cancel!==void 0?R=N=>o.cancel(N):R=()=>c(void 0);let x=o.autoAllocateChunkSize;if(x===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");Os(r,h,m,w,R,l,x)}function Sf(r,o,l){r._associatedReadableByteStreamController=o,r._view=l}function Ki(r){return new TypeError(`ReadableStreamBYOBRequest.prototype.${r} can only be used on a ReadableStreamBYOBRequest`)}function Or(r){return new TypeError(`ReadableByteStreamController.prototype.${r} can only be used on a ReadableByteStreamController`)}function Rf(r,o){Qe(r,o);let l=r?.mode;return{mode:l===void 0?void 0:Ef(l,`${o} has member 'mode' that`)}}function Ef(r,o){if(r=`${r}`,r!=="byob")throw new TypeError(`${o} '${r}' is not a valid enumeration value for ReadableStreamReaderMode`);return r}function Pf(r,o){var l;Qe(r,o);let h=(l=r?.min)!==null&&l!==void 0?l:1;return{min:Oi(h,`${o} has member 'min' that`)}}function Fs(r){return new Pt(r)}function Bs(r,o){r._reader._readIntoRequests.push(o)}function Lf(r,o,l){let m=r._reader._readIntoRequests.shift();l?m._closeSteps(o):m._chunkSteps(o)}function qs(r){return r._reader._readIntoRequests.length}function Xi(r){let o=r._reader;return!(o===void 0||!Vt(o))}class Pt{constructor(o){if(it(o,1,"ReadableStreamBYOBReader"),Fi(o,"First parameter"),At(o))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!Ut(o._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");C(this,o),this._readIntoRequests=new X}get closed(){return Vt(this)?this._closedPromise:p(wn("closed"))}cancel(o=void 0){return Vt(this)?this._ownerReadableStream===void 0?p(O("cancel")):E(this,o):p(wn("cancel"))}read(o,l={}){if(!Vt(this))return p(wn("read"));if(!ArrayBuffer.isView(o))return p(new TypeError("view must be an array buffer view"));if(o.byteLength===0)return p(new TypeError("view must have non-zero byteLength"));if(o.buffer.byteLength===0)return p(new TypeError("view's buffer must have non-zero byteLength"));if(Rt(o.buffer))return p(new TypeError("view's buffer has been detached"));let h;try{h=Pf(l,"options")}catch(B){return p(B)}let m=h.min;if(m===0)return p(new TypeError("options.min must be greater than 0"));if(hf(o)){if(m>o.byteLength)return p(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(m>o.length)return p(new RangeError("options.min must be less than or equal to view's length"));if(this._ownerReadableStream===void 0)return p(O("read from"));let w,R,x=d((B,U)=>{w=B,R=U});return Ms(this,o,m,{_chunkSteps:B=>w({value:B,done:!1}),_closeSteps:B=>w({value:B,done:!0}),_errorSteps:B=>R(B)}),x}releaseLock(){if(!Vt(this))throw wn("releaseLock");this._ownerReadableStream!==void 0&&xf(this)}}Object.defineProperties(Pt.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),i(Pt.prototype.cancel,"cancel"),i(Pt.prototype.read,"read"),i(Pt.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Pt.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function Vt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readIntoRequests")?!1:r instanceof Pt}function Ms(r,o,l,h){let m=r._ownerReadableStream;m._disturbed=!0,m._state==="errored"?h._errorSteps(m._storedError):_f(m._readableStreamController,o,l,h)}function xf(r){$(r);let o=new TypeError("Reader was released");Ns(r,o)}function Ns(r,o){let l=r._readIntoRequests;r._readIntoRequests=new X,l.forEach(h=>{h._errorSteps(o)})}function wn(r){return new TypeError(`ReadableStreamBYOBReader.prototype.${r} can only be used on a ReadableStreamBYOBReader`)}function Fr(r,o){let{highWaterMark:l}=r;if(l===void 0)return o;if(ys(l)||l<0)throw new RangeError("Invalid highWaterMark");return l}function vn(r){let{size:o}=r;return o||(()=>1)}function Sn(r,o){Qe(r,o);let l=r?.highWaterMark,h=r?.size;return{highWaterMark:l===void 0?void 0:$i(l),size:h===void 0?void 0:Af(h,`${o} has member 'size' that`)}}function Af(r,o){return Fe(r,o),l=>$i(r(l))}function Tf(r,o){Qe(r,o);let l=r?.abort,h=r?.close,m=r?.start,w=r?.type,R=r?.write;return{abort:l===void 0?void 0:kf(l,r,`${o} has member 'abort' that`),close:h===void 0?void 0:If(h,r,`${o} has member 'close' that`),start:m===void 0?void 0:Cf(m,r,`${o} has member 'start' that`),write:R===void 0?void 0:Df(R,r,`${o} has member 'write' that`),type:w}}function kf(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function If(r,o,l){return Fe(r,l),()=>Q(r,o,[])}function Cf(r,o,l){return Fe(r,l),h=>L(r,o,[h])}function Df(r,o,l){return Fe(r,l),(h,m)=>Q(r,o,[h,m])}function js(r,o){if(!ur(r))throw new TypeError(`${o} is not a WritableStream.`)}function $f(r){if(typeof r!="object"||r===null)return!1;try{return typeof r.aborted=="boolean"}catch{return!1}}let Of=typeof AbortController=="function";function Ff(){if(Of)return new AbortController}class Lt{constructor(o={},l={}){o===void 0?o=null:cs(o,"First parameter");let h=Sn(l,"Second parameter"),m=Tf(o,"First parameter");if(Ws(this),m.type!==void 0)throw new RangeError("Invalid type is specified");let R=vn(h),x=Fr(h,1);Yf(this,m,x,R)}get locked(){if(!ur(this))throw xn("locked");return cr(this)}abort(o=void 0){return ur(this)?cr(this)?p(new TypeError("Cannot abort a stream that already has a writer")):Rn(this,o):p(xn("abort"))}close(){return ur(this)?cr(this)?p(new TypeError("Cannot close a stream that already has a writer")):Je(this)?p(new TypeError("Cannot close an already-closing stream")):Vs(this):p(xn("close"))}getWriter(){if(!ur(this))throw xn("getWriter");return Us(this)}}Object.defineProperties(Lt.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),i(Lt.prototype.abort,"abort"),i(Lt.prototype.close,"close"),i(Lt.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Lt.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function Us(r){return new st(r)}function Bf(r,o,l,h,m=1,w=()=>1){let R=Object.create(Lt.prototype);Ws(R);let x=Object.create(dr.prototype);return Ys(R,x,r,o,l,h,m,w),R}function Ws(r){r._state="writable",r._storedError=void 0,r._writer=void 0,r._writableStreamController=void 0,r._writeRequests=new X,r._inFlightWriteRequest=void 0,r._closeRequest=void 0,r._inFlightCloseRequest=void 0,r._pendingAbortRequest=void 0,r._backpressure=!1}function ur(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_writableStreamController")?!1:r instanceof Lt}function cr(r){return r._writer!==void 0}function Rn(r,o){var l;if(r._state==="closed"||r._state==="errored")return c(void 0);r._writableStreamController._abortReason=o,(l=r._writableStreamController._abortController)===null||l===void 0||l.abort(o);let h=r._state;if(h==="closed"||h==="errored")return c(void 0);if(r._pendingAbortRequest!==void 0)return r._pendingAbortRequest._promise;let m=!1;h==="erroring"&&(m=!0,o=void 0);let w=d((R,x)=>{r._pendingAbortRequest={_promise:void 0,_resolve:R,_reject:x,_reason:o,_wasAlreadyErroring:m}});return r._pendingAbortRequest._promise=w,m||Qi(r,o),w}function Vs(r){let o=r._state;if(o==="closed"||o==="errored")return p(new TypeError(`The stream (in ${o} state) is not in the writable state and cannot be closed`));let l=d((m,w)=>{let R={_resolve:m,_reject:w};r._closeRequest=R}),h=r._writer;return h!==void 0&&r._backpressure&&o==="writable"&&oo(h),Qf(r._writableStreamController),l}function qf(r){return d((l,h)=>{let m={_resolve:l,_reject:h};r._writeRequests.push(m)})}function Yi(r,o){if(r._state==="writable"){Qi(r,o);return}Ji(r)}function Qi(r,o){let l=r._writableStreamController;r._state="erroring",r._storedError=o;let h=r._writer;h!==void 0&&Hs(h,o),!Wf(r)&&l._started&&Ji(r)}function Ji(r){r._state="errored",r._writableStreamController[Ve]();let o=r._storedError;if(r._writeRequests.forEach(m=>{m._reject(o)}),r._writeRequests=new X,r._pendingAbortRequest===void 0){En(r);return}let l=r._pendingAbortRequest;if(r._pendingAbortRequest=void 0,l._wasAlreadyErroring){l._reject(o),En(r);return}let h=r._writableStreamController[J](l._reason);b(h,()=>(l._resolve(),En(r),null),m=>(l._reject(m),En(r),null))}function Mf(r){r._inFlightWriteRequest._resolve(void 0),r._inFlightWriteRequest=void 0}function Nf(r,o){r._inFlightWriteRequest._reject(o),r._inFlightWriteRequest=void 0,Yi(r,o)}function jf(r){r._inFlightCloseRequest._resolve(void 0),r._inFlightCloseRequest=void 0,r._state==="erroring"&&(r._storedError=void 0,r._pendingAbortRequest!==void 0&&(r._pendingAbortRequest._resolve(),r._pendingAbortRequest=void 0)),r._state="closed";let l=r._writer;l!==void 0&&el(l)}function Uf(r,o){r._inFlightCloseRequest._reject(o),r._inFlightCloseRequest=void 0,r._pendingAbortRequest!==void 0&&(r._pendingAbortRequest._reject(o),r._pendingAbortRequest=void 0),Yi(r,o)}function Je(r){return!(r._closeRequest===void 0&&r._inFlightCloseRequest===void 0)}function Wf(r){return!(r._inFlightWriteRequest===void 0&&r._inFlightCloseRequest===void 0)}function Vf(r){r._inFlightCloseRequest=r._closeRequest,r._closeRequest=void 0}function zf(r){r._inFlightWriteRequest=r._writeRequests.shift()}function En(r){r._closeRequest!==void 0&&(r._closeRequest._reject(r._storedError),r._closeRequest=void 0);let o=r._writer;o!==void 0&&no(o,r._storedError)}function Zi(r,o){let l=r._writer;l!==void 0&&o!==r._backpressure&&(o?ip(l):oo(l)),r._backpressure=o}class st{constructor(o){if(it(o,1,"WritableStreamDefaultWriter"),js(o,"First parameter"),cr(o))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=o,o._writer=this;let l=o._state;if(l==="writable")!Je(o)&&o._backpressure?Tn(this):tl(this),An(this);else if(l==="erroring")io(this,o._storedError),An(this);else if(l==="closed")tl(this),rp(this);else{let h=o._storedError;io(this,h),Zs(this,h)}}get closed(){return zt(this)?this._closedPromise:p(Ht("closed"))}get desiredSize(){if(!zt(this))throw Ht("desiredSize");if(this._ownerWritableStream===void 0)throw qr("desiredSize");return Xf(this)}get ready(){return zt(this)?this._readyPromise:p(Ht("ready"))}abort(o=void 0){return zt(this)?this._ownerWritableStream===void 0?p(qr("abort")):Hf(this,o):p(Ht("abort"))}close(){if(!zt(this))return p(Ht("close"));let o=this._ownerWritableStream;return o===void 0?p(qr("close")):Je(o)?p(new TypeError("Cannot close an already-closing stream")):zs(this)}releaseLock(){if(!zt(this))throw Ht("releaseLock");this._ownerWritableStream!==void 0&&Gs(this)}write(o=void 0){return zt(this)?this._ownerWritableStream===void 0?p(qr("write to")):Ks(this,o):p(Ht("write"))}}Object.defineProperties(st.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),i(st.prototype.abort,"abort"),i(st.prototype.close,"close"),i(st.prototype.releaseLock,"releaseLock"),i(st.prototype.write,"write"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(st.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function zt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_ownerWritableStream")?!1:r instanceof st}function Hf(r,o){let l=r._ownerWritableStream;return Rn(l,o)}function zs(r){let o=r._ownerWritableStream;return Vs(o)}function Gf(r){let o=r._ownerWritableStream,l=o._state;return Je(o)||l==="closed"?c(void 0):l==="errored"?p(o._storedError):zs(r)}function Kf(r,o){r._closedPromiseState==="pending"?no(r,o):np(r,o)}function Hs(r,o){r._readyPromiseState==="pending"?rl(r,o):op(r,o)}function Xf(r){let o=r._ownerWritableStream,l=o._state;return l==="errored"||l==="erroring"?null:l==="closed"?0:Qs(o._writableStreamController)}function Gs(r){let o=r._ownerWritableStream,l=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");Hs(r,l),Kf(r,l),o._writer=void 0,r._ownerWritableStream=void 0}function Ks(r,o){let l=r._ownerWritableStream,h=l._writableStreamController,m=Jf(h,o);if(l!==r._ownerWritableStream)return p(qr("write to"));let w=l._state;if(w==="errored")return p(l._storedError);if(Je(l)||w==="closed")return p(new TypeError("The stream is closing or closed and cannot be written to"));if(w==="erroring")return p(l._storedError);let R=qf(l);return Zf(h,o,m),R}let Xs={};class dr{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!eo(this))throw ro("abortReason");return this._abortReason}get signal(){if(!eo(this))throw ro("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(o=void 0){if(!eo(this))throw ro("error");this._controlledWritableStream._state==="writable"&&Js(this,o)}[J](o){let l=this._abortAlgorithm(o);return Pn(this),l}[Ve](){Et(this)}}Object.defineProperties(dr.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(dr.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function eo(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledWritableStream")?!1:r instanceof dr}function Ys(r,o,l,h,m,w,R,x){o._controlledWritableStream=r,r._writableStreamController=o,o._queue=void 0,o._queueTotalSize=void 0,Et(o),o._abortReason=void 0,o._abortController=Ff(),o._started=!1,o._strategySizeAlgorithm=x,o._strategyHWM=R,o._writeAlgorithm=h,o._closeAlgorithm=m,o._abortAlgorithm=w;let N=to(o);Zi(r,N);let B=l(),U=c(B);b(U,()=>(o._started=!0,Ln(o),null),z=>(o._started=!0,Yi(r,z),null))}function Yf(r,o,l,h){let m=Object.create(dr.prototype),w,R,x,N;o.start!==void 0?w=()=>o.start(m):w=()=>{},o.write!==void 0?R=B=>o.write(B,m):R=()=>c(void 0),o.close!==void 0?x=()=>o.close():x=()=>c(void 0),o.abort!==void 0?N=B=>o.abort(B):N=()=>c(void 0),Ys(r,m,w,R,x,N,l,h)}function Pn(r){r._writeAlgorithm=void 0,r._closeAlgorithm=void 0,r._abortAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function Qf(r){Ui(r,Xs,0),Ln(r)}function Jf(r,o){try{return r._strategySizeAlgorithm(o)}catch(l){return Br(r,l),1}}function Qs(r){return r._strategyHWM-r._queueTotalSize}function Zf(r,o,l){try{Ui(r,o,l)}catch(m){Br(r,m);return}let h=r._controlledWritableStream;if(!Je(h)&&h._state==="writable"){let m=to(r);Zi(h,m)}Ln(r)}function Ln(r){let o=r._controlledWritableStream;if(!r._started||o._inFlightWriteRequest!==void 0)return;if(o._state==="erroring"){Ji(o);return}if(r._queue.length===0)return;let h=pf(r);h===Xs?ep(r):tp(r,h)}function Br(r,o){r._controlledWritableStream._state==="writable"&&Js(r,o)}function ep(r){let o=r._controlledWritableStream;Vf(o),ji(r);let l=r._closeAlgorithm();Pn(r),b(l,()=>(jf(o),null),h=>(Uf(o,h),null))}function tp(r,o){let l=r._controlledWritableStream;zf(l);let h=r._writeAlgorithm(o);b(h,()=>{Mf(l);let m=l._state;if(ji(r),!Je(l)&&m==="writable"){let w=to(r);Zi(l,w)}return Ln(r),null},m=>(l._state==="writable"&&Pn(r),Nf(l,m),null))}function to(r){return Qs(r)<=0}function Js(r,o){let l=r._controlledWritableStream;Pn(r),Qi(l,o)}function xn(r){return new TypeError(`WritableStream.prototype.${r} can only be used on a WritableStream`)}function ro(r){return new TypeError(`WritableStreamDefaultController.prototype.${r} can only be used on a WritableStreamDefaultController`)}function Ht(r){return new TypeError(`WritableStreamDefaultWriter.prototype.${r} can only be used on a WritableStreamDefaultWriter`)}function qr(r){return new TypeError("Cannot "+r+" a stream using a released writer")}function An(r){r._closedPromise=d((o,l)=>{r._closedPromise_resolve=o,r._closedPromise_reject=l,r._closedPromiseState="pending"})}function Zs(r,o){An(r),no(r,o)}function rp(r){An(r),el(r)}function no(r,o){r._closedPromise_reject!==void 0&&(A(r._closedPromise),r._closedPromise_reject(o),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="rejected")}function np(r,o){Zs(r,o)}function el(r){r._closedPromise_resolve!==void 0&&(r._closedPromise_resolve(void 0),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="resolved")}function Tn(r){r._readyPromise=d((o,l)=>{r._readyPromise_resolve=o,r._readyPromise_reject=l}),r._readyPromiseState="pending"}function io(r,o){Tn(r),rl(r,o)}function tl(r){Tn(r),oo(r)}function rl(r,o){r._readyPromise_reject!==void 0&&(A(r._readyPromise),r._readyPromise_reject(o),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="rejected")}function ip(r){Tn(r)}function op(r,o){io(r,o)}function oo(r){r._readyPromise_resolve!==void 0&&(r._readyPromise_resolve(void 0),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="fulfilled")}function ap(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof global<"u")return global}let ao=ap();function sp(r){if(!(typeof r=="function"||typeof r=="object")||r.name!=="DOMException")return!1;try{return new r,!0}catch{return!1}}function lp(){let r=ao?.DOMException;return sp(r)?r:void 0}function up(){let r=function(l,h){this.message=l||"",this.name=h||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return i(r,"DOMException"),r.prototype=Object.create(Error.prototype),Object.defineProperty(r.prototype,"constructor",{value:r,writable:!0,configurable:!0}),r}let cp=lp()||up();function nl(r,o,l,h,m,w){let R=sr(r),x=Us(o);r._disturbed=!0;let N=!1,B=c(void 0);return d((U,z)=>{let ee;if(w!==void 0){if(ee=()=>{let M=w.reason!==void 0?w.reason:new cp("Aborted","AbortError"),G=[];h||G.push(()=>o._state==="writable"?Rn(o,M):c(void 0)),m||G.push(()=>r._state==="readable"?Ge(r,M):c(void 0)),Se(()=>Promise.all(G.map(re=>re())),!0,M)},w.aborted){ee();return}w.addEventListener("abort",ee)}function Ke(){return d((M,G)=>{function re(Ae){Ae?M():_(mr(),re,G)}re(!1)})}function mr(){return N?c(!0):_(x._readyPromise,()=>d((M,G)=>{Cr(R,{_chunkSteps:re=>{B=_(Ks(x,re),void 0,e),M(!1)},_closeSteps:()=>M(!0),_errorSteps:G})}))}if(ut(r,R._closedPromise,M=>(h?qe(!0,M):Se(()=>Rn(o,M),!0,M),null)),ut(o,x._closedPromise,M=>(m?qe(!0,M):Se(()=>Ge(r,M),!0,M),null)),_e(r,R._closedPromise,()=>(l?qe():Se(()=>Gf(x)),null)),Je(o)||o._state==="closed"){let M=new TypeError("the destination writable stream closed before all data could be piped to it");m?qe(!0,M):Se(()=>Ge(r,M),!0,M)}A(Ke());function kt(){let M=B;return _(B,()=>M!==B?kt():void 0)}function ut(M,G,re){M._state==="errored"?re(M._storedError):y(G,re)}function _e(M,G,re){M._state==="closed"?re():g(G,re)}function Se(M,G,re){if(N)return;N=!0,o._state==="writable"&&!Je(o)?g(kt(),Ae):Ae();function Ae(){return b(M(),()=>ct(G,re),gr=>ct(!0,gr)),null}}function qe(M,G){N||(N=!0,o._state==="writable"&&!Je(o)?g(kt(),()=>ct(M,G)):ct(M,G))}function ct(M,G){return Gs(x),$(R),w!==void 0&&w.removeEventListener("abort",ee),M?z(G):U(void 0),null}})}class lt{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!kn(this))throw Cn("desiredSize");return so(this)}close(){if(!kn(this))throw Cn("close");if(!pr(this))throw new TypeError("The stream is not in a state that permits close");Gt(this)}enqueue(o=void 0){if(!kn(this))throw Cn("enqueue");if(!pr(this))throw new TypeError("The stream is not in a state that permits enqueue");return fr(this,o)}error(o=void 0){if(!kn(this))throw Cn("error");He(this,o)}[ze](o){Et(this);let l=this._cancelAlgorithm(o);return In(this),l}[wt](o){let l=this._controlledReadableStream;if(this._queue.length>0){let h=ji(this);this._closeRequested&&this._queue.length===0?(In(this),jr(l)):Mr(this),o._chunkSteps(h)}else fs(l,o),Mr(this)}[Mt](){}}Object.defineProperties(lt.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),i(lt.prototype.close,"close"),i(lt.prototype.enqueue,"enqueue"),i(lt.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(lt.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function kn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableStream")?!1:r instanceof lt}function Mr(r){if(!il(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();b(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,Mr(r)),null),h=>(He(r,h),null))}function il(r){let o=r._controlledReadableStream;return!pr(r)||!r._started?!1:!!(At(o)&&fn(o)>0||so(r)>0)}function In(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function Gt(r){if(!pr(r))return;let o=r._controlledReadableStream;r._closeRequested=!0,r._queue.length===0&&(In(r),jr(o))}function fr(r,o){if(!pr(r))return;let l=r._controlledReadableStream;if(At(l)&&fn(l)>0)Bi(l,o,!1);else{let h;try{h=r._strategySizeAlgorithm(o)}catch(m){throw He(r,m),m}try{Ui(r,o,h)}catch(m){throw He(r,m),m}}Mr(r)}function He(r,o){let l=r._controlledReadableStream;l._state==="readable"&&(Et(r),In(r),ll(l,o))}function so(r){let o=r._controlledReadableStream._state;return o==="errored"?null:o==="closed"?0:r._strategyHWM-r._queueTotalSize}function dp(r){return!il(r)}function pr(r){let o=r._controlledReadableStream._state;return!r._closeRequested&&o==="readable"}function ol(r,o,l,h,m,w,R){o._controlledReadableStream=r,o._queue=void 0,o._queueTotalSize=void 0,Et(o),o._started=!1,o._closeRequested=!1,o._pullAgain=!1,o._pulling=!1,o._strategySizeAlgorithm=R,o._strategyHWM=w,o._pullAlgorithm=h,o._cancelAlgorithm=m,r._readableStreamController=o;let x=l();b(c(x),()=>(o._started=!0,Mr(o),null),N=>(He(o,N),null))}function fp(r,o,l,h){let m=Object.create(lt.prototype),w,R,x;o.start!==void 0?w=()=>o.start(m):w=()=>{},o.pull!==void 0?R=()=>o.pull(m):R=()=>c(void 0),o.cancel!==void 0?x=N=>o.cancel(N):x=()=>c(void 0),ol(r,m,w,R,x,l,h)}function Cn(r){return new TypeError(`ReadableStreamDefaultController.prototype.${r} can only be used on a ReadableStreamDefaultController`)}function pp(r,o){return Ut(r._readableStreamController)?mp(r):hp(r)}function hp(r,o){let l=sr(r),h=!1,m=!1,w=!1,R=!1,x,N,B,U,z,ee=d(_e=>{z=_e});function Ke(){return h?(m=!0,c(void 0)):(h=!0,Cr(l,{_chunkSteps:Se=>{P(()=>{m=!1;let qe=Se,ct=Se;w||fr(B._readableStreamController,qe),R||fr(U._readableStreamController,ct),h=!1,m&&Ke()})},_closeSteps:()=>{h=!1,w||Gt(B._readableStreamController),R||Gt(U._readableStreamController),(!w||!R)&&z(void 0)},_errorSteps:()=>{h=!1}}),c(void 0))}function mr(_e){if(w=!0,x=_e,R){let Se=Dr([x,N]),qe=Ge(r,Se);z(qe)}return ee}function kt(_e){if(R=!0,N=_e,w){let Se=Dr([x,N]),qe=Ge(r,Se);z(qe)}return ee}function ut(){}return B=Nr(ut,Ke,mr),U=Nr(ut,Ke,kt),y(l._closedPromise,_e=>(He(B._readableStreamController,_e),He(U._readableStreamController,_e),(!w||!R)&&z(void 0),null)),[B,U]}function mp(r){let o=sr(r),l=!1,h=!1,m=!1,w=!1,R=!1,x,N,B,U,z,ee=d(M=>{z=M});function Ke(M){y(M._closedPromise,G=>(M!==o||(Be(B._readableStreamController,G),Be(U._readableStreamController,G),(!w||!R)&&z(void 0)),null))}function mr(){Vt(o)&&($(o),o=sr(r),Ke(o)),Cr(o,{_chunkSteps:G=>{P(()=>{h=!1,m=!1;let re=G,Ae=G;if(!w&&!R)try{Ae=Rs(G)}catch(gr){Be(B._readableStreamController,gr),Be(U._readableStreamController,gr),z(Ge(r,gr));return}w||_n(B._readableStreamController,re),R||_n(U._readableStreamController,Ae),l=!1,h?ut():m&&_e()})},_closeSteps:()=>{l=!1,w||$r(B._readableStreamController),R||$r(U._readableStreamController),B._readableStreamController._pendingPullIntos.length>0&&bn(B._readableStreamController,0),U._readableStreamController._pendingPullIntos.length>0&&bn(U._readableStreamController,0),(!w||!R)&&z(void 0)},_errorSteps:()=>{l=!1}})}function kt(M,G){St(o)&&($(o),o=Fs(r),Ke(o));let re=G?U:B,Ae=G?B:U;Ms(o,M,1,{_chunkSteps:_r=>{P(()=>{h=!1,m=!1;let br=G?R:w;if(G?w:R)br||yn(re._readableStreamController,_r);else{let vl;try{vl=Rs(_r)}catch(po){Be(re._readableStreamController,po),Be(Ae._readableStreamController,po),z(Ge(r,po));return}br||yn(re._readableStreamController,_r),_n(Ae._readableStreamController,vl)}l=!1,h?ut():m&&_e()})},_closeSteps:_r=>{l=!1;let br=G?R:w,Nn=G?w:R;br||$r(re._readableStreamController),Nn||$r(Ae._readableStreamController),_r!==void 0&&(br||yn(re._readableStreamController,_r),!Nn&&Ae._readableStreamController._pendingPullIntos.length>0&&bn(Ae._readableStreamController,0)),(!br||!Nn)&&z(void 0)},_errorSteps:()=>{l=!1}})}function ut(){if(l)return h=!0,c(void 0);l=!0;let M=Gi(B._readableStreamController);return M===null?mr():kt(M._view,!1),c(void 0)}function _e(){if(l)return m=!0,c(void 0);l=!0;let M=Gi(U._readableStreamController);return M===null?mr():kt(M._view,!0),c(void 0)}function Se(M){if(w=!0,x=M,R){let G=Dr([x,N]),re=Ge(r,G);z(re)}return ee}function qe(M){if(R=!0,N=M,w){let G=Dr([x,N]),re=Ge(r,G);z(re)}return ee}function ct(){}return B=sl(ct,ut,Se),U=sl(ct,_e,qe),Ke(o),[B,U]}function gp(r){return t(r)&&typeof r.getReader<"u"}function _p(r){return gp(r)?yp(r.getReader()):bp(r)}function bp(r){let o,l=Ss(r,"async"),h=e;function m(){let R;try{R=uf(l)}catch(N){return p(N)}let x=c(R);return S(x,N=>{if(!t(N))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if(cf(N))Gt(o._readableStreamController);else{let U=df(N);fr(o._readableStreamController,U)}})}function w(R){let x=l.iterator,N;try{N=hn(x,"return")}catch(z){return p(z)}if(N===void 0)return c(void 0);let B;try{B=L(N,x,[R])}catch(z){return p(z)}let U=c(B);return S(U,z=>{if(!t(z))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return o=Nr(h,m,w,0),o}function yp(r){let o,l=e;function h(){let w;try{w=r.read()}catch(R){return p(R)}return S(w,R=>{if(!t(R))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(R.done)Gt(o._readableStreamController);else{let x=R.value;fr(o._readableStreamController,x)}})}function m(w){try{return c(r.cancel(w))}catch(R){return p(R)}}return o=Nr(l,h,m,0),o}function wp(r,o){Qe(r,o);let l=r,h=l?.autoAllocateChunkSize,m=l?.cancel,w=l?.pull,R=l?.start,x=l?.type;return{autoAllocateChunkSize:h===void 0?void 0:Oi(h,`${o} has member 'autoAllocateChunkSize' that`),cancel:m===void 0?void 0:vp(m,l,`${o} has member 'cancel' that`),pull:w===void 0?void 0:Sp(w,l,`${o} has member 'pull' that`),start:R===void 0?void 0:Rp(R,l,`${o} has member 'start' that`),type:x===void 0?void 0:Ep(x,`${o} has member 'type' that`)}}function vp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function Sp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function Rp(r,o,l){return Fe(r,l),h=>L(r,o,[h])}function Ep(r,o){if(r=`${r}`,r!=="bytes")throw new TypeError(`${o} '${r}' is not a valid enumeration value for ReadableStreamType`);return r}function Pp(r,o){return Qe(r,o),{preventCancel:!!r?.preventCancel}}function al(r,o){Qe(r,o);let l=r?.preventAbort,h=r?.preventCancel,m=r?.preventClose,w=r?.signal;return w!==void 0&&Lp(w,`${o} has member 'signal' that`),{preventAbort:!!l,preventCancel:!!h,preventClose:!!m,signal:w}}function Lp(r,o){if(!$f(r))throw new TypeError(`${o} is not an AbortSignal.`)}function xp(r,o){Qe(r,o);let l=r?.readable;Di(l,"readable","ReadableWritablePair"),Fi(l,`${o} has member 'readable' that`);let h=r?.writable;return Di(h,"writable","ReadableWritablePair"),js(h,`${o} has member 'writable' that`),{readable:l,writable:h}}class me{constructor(o={},l={}){o===void 0?o=null:cs(o,"First parameter");let h=Sn(l,"Second parameter"),m=wp(o,"First parameter");if(lo(this),m.type==="bytes"){if(h.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");let w=Fr(h,0);vf(this,m,w)}else{let w=vn(h),R=Fr(h,1);fp(this,m,R,w)}}get locked(){if(!xt(this))throw Kt("locked");return At(this)}cancel(o=void 0){return xt(this)?At(this)?p(new TypeError("Cannot cancel a stream that already has a reader")):Ge(this,o):p(Kt("cancel"))}getReader(o=void 0){if(!xt(this))throw Kt("getReader");return Rf(o,"First parameter").mode===void 0?sr(this):Fs(this)}pipeThrough(o,l={}){if(!xt(this))throw Kt("pipeThrough");it(o,1,"pipeThrough");let h=xp(o,"First parameter"),m=al(l,"Second parameter");if(At(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(cr(h.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");let w=nl(this,h.writable,m.preventClose,m.preventAbort,m.preventCancel,m.signal);return A(w),h.readable}pipeTo(o,l={}){if(!xt(this))return p(Kt("pipeTo"));if(o===void 0)return p("Parameter 1 is required in 'pipeTo'.");if(!ur(o))return p(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let h;try{h=al(l,"Second parameter")}catch(m){return p(m)}return At(this)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):cr(o)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):nl(this,o,h.preventClose,h.preventAbort,h.preventCancel,h.signal)}tee(){if(!xt(this))throw Kt("tee");let o=pp(this);return Dr(o)}values(o=void 0){if(!xt(this))throw Kt("values");let l=Pp(o,"First parameter");return sf(this,l.preventCancel)}[Ni](o){return this.values(o)}static from(o){return _p(o)}}Object.defineProperties(me,{from:{enumerable:!0}}),Object.defineProperties(me.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),i(me.from,"from"),i(me.prototype.cancel,"cancel"),i(me.prototype.getReader,"getReader"),i(me.prototype.pipeThrough,"pipeThrough"),i(me.prototype.pipeTo,"pipeTo"),i(me.prototype.tee,"tee"),i(me.prototype.values,"values"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(me.prototype,Symbol.toStringTag,{value:"ReadableStream",configurable:!0}),Object.defineProperty(me.prototype,Ni,{value:me.prototype.values,writable:!0,configurable:!0});function Nr(r,o,l,h=1,m=()=>1){let w=Object.create(me.prototype);lo(w);let R=Object.create(lt.prototype);return ol(w,R,r,o,l,h,m),w}function sl(r,o,l){let h=Object.create(me.prototype);lo(h);let m=Object.create(at.prototype);return Os(h,m,r,o,l,0,void 0),h}function lo(r){r._state="readable",r._reader=void 0,r._storedError=void 0,r._disturbed=!1}function xt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readableStreamController")?!1:r instanceof me}function At(r){return r._reader!==void 0}function Ge(r,o){if(r._disturbed=!0,r._state==="closed")return c(void 0);if(r._state==="errored")return p(r._storedError);jr(r);let l=r._reader;if(l!==void 0&&Vt(l)){let m=l._readIntoRequests;l._readIntoRequests=new X,m.forEach(w=>{w._closeSteps(void 0)})}let h=r._readableStreamController[ze](o);return S(h,e)}function jr(r){r._state="closed";let o=r._reader;if(o!==void 0&&(ue(o),St(o))){let l=o._readRequests;o._readRequests=new X,l.forEach(h=>{h._closeSteps()})}}function ll(r,o){r._state="errored",r._storedError=o;let l=r._reader;l!==void 0&&(we(l,o),St(l)?hs(l,o):Ns(l,o))}function Kt(r){return new TypeError(`ReadableStream.prototype.${r} can only be used on a ReadableStream`)}function ul(r,o){Qe(r,o);let l=r?.highWaterMark;return Di(l,"highWaterMark","QueuingStrategyInit"),{highWaterMark:$i(l)}}let cl=r=>r.byteLength;i(cl,"size");class Dn{constructor(o){it(o,1,"ByteLengthQueuingStrategy"),o=ul(o,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=o.highWaterMark}get highWaterMark(){if(!fl(this))throw dl("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!fl(this))throw dl("size");return cl}}Object.defineProperties(Dn.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Dn.prototype,Symbol.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function dl(r){return new TypeError(`ByteLengthQueuingStrategy.prototype.${r} can only be used on a ByteLengthQueuingStrategy`)}function fl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_byteLengthQueuingStrategyHighWaterMark")?!1:r instanceof Dn}let pl=()=>1;i(pl,"size");class $n{constructor(o){it(o,1,"CountQueuingStrategy"),o=ul(o,"First parameter"),this._countQueuingStrategyHighWaterMark=o.highWaterMark}get highWaterMark(){if(!ml(this))throw hl("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!ml(this))throw hl("size");return pl}}Object.defineProperties($n.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty($n.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function hl(r){return new TypeError(`CountQueuingStrategy.prototype.${r} can only be used on a CountQueuingStrategy`)}function ml(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_countQueuingStrategyHighWaterMark")?!1:r instanceof $n}function Ap(r,o){Qe(r,o);let l=r?.cancel,h=r?.flush,m=r?.readableType,w=r?.start,R=r?.transform,x=r?.writableType;return{cancel:l===void 0?void 0:Cp(l,r,`${o} has member 'cancel' that`),flush:h===void 0?void 0:Tp(h,r,`${o} has member 'flush' that`),readableType:m,start:w===void 0?void 0:kp(w,r,`${o} has member 'start' that`),transform:R===void 0?void 0:Ip(R,r,`${o} has member 'transform' that`),writableType:x}}function Tp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function kp(r,o,l){return Fe(r,l),h=>L(r,o,[h])}function Ip(r,o,l){return Fe(r,l),(h,m)=>Q(r,o,[h,m])}function Cp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}class On{constructor(o={},l={},h={}){o===void 0&&(o=null);let m=Sn(l,"Second parameter"),w=Sn(h,"Third parameter"),R=Ap(o,"First parameter");if(R.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(R.writableType!==void 0)throw new RangeError("Invalid writableType specified");let x=Fr(w,0),N=vn(w),B=Fr(m,1),U=vn(m),z,ee=d(Ke=>{z=Ke});Dp(this,ee,B,U,x,N),Op(this,R),R.start!==void 0?z(R.start(this._transformStreamController)):z(void 0)}get readable(){if(!gl(this))throw wl("readable");return this._readable}get writable(){if(!gl(this))throw wl("writable");return this._writable}}Object.defineProperties(On.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(On.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function Dp(r,o,l,h,m,w){function R(){return o}function x(ee){return qp(r,ee)}function N(ee){return Mp(r,ee)}function B(){return Np(r)}r._writable=Bf(R,x,B,N,l,h);function U(){return jp(r)}function z(ee){return Up(r,ee)}r._readable=Nr(R,U,z,m,w),r._backpressure=void 0,r._backpressureChangePromise=void 0,r._backpressureChangePromise_resolve=void 0,Fn(r,!0),r._transformStreamController=void 0}function gl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_transformStreamController")?!1:r instanceof On}function _l(r,o){He(r._readable._readableStreamController,o),uo(r,o)}function uo(r,o){qn(r._transformStreamController),Br(r._writable._writableStreamController,o),co(r)}function co(r){r._backpressure&&Fn(r,!1)}function Fn(r,o){r._backpressureChangePromise!==void 0&&r._backpressureChangePromise_resolve(),r._backpressureChangePromise=d(l=>{r._backpressureChangePromise_resolve=l}),r._backpressure=o}class Tt{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Bn(this))throw Mn("desiredSize");let o=this._controlledTransformStream._readable._readableStreamController;return so(o)}enqueue(o=void 0){if(!Bn(this))throw Mn("enqueue");bl(this,o)}error(o=void 0){if(!Bn(this))throw Mn("error");Fp(this,o)}terminate(){if(!Bn(this))throw Mn("terminate");Bp(this)}}Object.defineProperties(Tt.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),i(Tt.prototype.enqueue,"enqueue"),i(Tt.prototype.error,"error"),i(Tt.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Tt.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function Bn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledTransformStream")?!1:r instanceof Tt}function $p(r,o,l,h,m){o._controlledTransformStream=r,r._transformStreamController=o,o._transformAlgorithm=l,o._flushAlgorithm=h,o._cancelAlgorithm=m,o._finishPromise=void 0,o._finishPromise_resolve=void 0,o._finishPromise_reject=void 0}function Op(r,o){let l=Object.create(Tt.prototype),h,m,w;o.transform!==void 0?h=R=>o.transform(R,l):h=R=>{try{return bl(l,R),c(void 0)}catch(x){return p(x)}},o.flush!==void 0?m=()=>o.flush(l):m=()=>c(void 0),o.cancel!==void 0?w=R=>o.cancel(R):w=()=>c(void 0),$p(r,l,h,m,w)}function qn(r){r._transformAlgorithm=void 0,r._flushAlgorithm=void 0,r._cancelAlgorithm=void 0}function bl(r,o){let l=r._controlledTransformStream,h=l._readable._readableStreamController;if(!pr(h))throw new TypeError("Readable side is not in a state that permits enqueue");try{fr(h,o)}catch(w){throw uo(l,w),l._readable._storedError}dp(h)!==l._backpressure&&Fn(l,!0)}function Fp(r,o){_l(r._controlledTransformStream,o)}function yl(r,o){let l=r._transformAlgorithm(o);return S(l,void 0,h=>{throw _l(r._controlledTransformStream,h),h})}function Bp(r){let o=r._controlledTransformStream,l=o._readable._readableStreamController;Gt(l);let h=new TypeError("TransformStream terminated");uo(o,h)}function qp(r,o){let l=r._transformStreamController;if(r._backpressure){let h=r._backpressureChangePromise;return S(h,()=>{let m=r._writable;if(m._state==="erroring")throw m._storedError;return yl(l,o)})}return yl(l,o)}function Mp(r,o){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._readable;l._finishPromise=d((w,R)=>{l._finishPromise_resolve=w,l._finishPromise_reject=R});let m=l._cancelAlgorithm(o);return qn(l),b(m,()=>(h._state==="errored"?hr(l,h._storedError):(He(h._readableStreamController,o),fo(l)),null),w=>(He(h._readableStreamController,w),hr(l,w),null)),l._finishPromise}function Np(r){let o=r._transformStreamController;if(o._finishPromise!==void 0)return o._finishPromise;let l=r._readable;o._finishPromise=d((m,w)=>{o._finishPromise_resolve=m,o._finishPromise_reject=w});let h=o._flushAlgorithm();return qn(o),b(h,()=>(l._state==="errored"?hr(o,l._storedError):(Gt(l._readableStreamController),fo(o)),null),m=>(He(l._readableStreamController,m),hr(o,m),null)),o._finishPromise}function jp(r){return Fn(r,!1),r._backpressureChangePromise}function Up(r,o){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._writable;l._finishPromise=d((w,R)=>{l._finishPromise_resolve=w,l._finishPromise_reject=R});let m=l._cancelAlgorithm(o);return qn(l),b(m,()=>(h._state==="errored"?hr(l,h._storedError):(Br(h._writableStreamController,o),co(r),fo(l)),null),w=>(Br(h._writableStreamController,w),co(r),hr(l,w),null)),l._finishPromise}function Mn(r){return new TypeError(`TransformStreamDefaultController.prototype.${r} can only be used on a TransformStreamDefaultController`)}function fo(r){r._finishPromise_resolve!==void 0&&(r._finishPromise_resolve(),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function hr(r,o){r._finishPromise_reject!==void 0&&(A(r._finishPromise),r._finishPromise_reject(o),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function wl(r){return new TypeError(`TransformStream.prototype.${r} can only be used on a TransformStream`)}a.ByteLengthQueuingStrategy=Dn,a.CountQueuingStrategy=$n,a.ReadableByteStreamController=at,a.ReadableStream=me,a.ReadableStreamBYOBReader=Pt,a.ReadableStreamBYOBRequest=jt,a.ReadableStreamDefaultController=lt,a.ReadableStreamDefaultReader=vt,a.TransformStream=On,a.TransformStreamDefaultController=Tt,a.WritableStream=Lt,a.WritableStreamDefaultController=dr,a.WritableStreamDefaultWriter=st})});var Yl=F(()=>{"use strict";if(!globalThis.ReadableStream)try{let a=require("node:process"),{emitWarning:e}=a;try{a.emitWarning=()=>{},Object.assign(globalThis,require("node:stream/web")),a.emitWarning=e}catch(t){throw a.emitWarning=e,t}}catch{Object.assign(globalThis,Xl())}try{let{Blob:a}=require("buffer");a&&!a.prototype.stream&&(a.prototype.stream=function(t){let n=0,i=this;return new ReadableStream({type:"bytes",async pull(s){let f=await i.slice(n,Math.min(i.size,n+65536)).arrayBuffer();n+=f.byteLength,s.enqueue(new Uint8Array(f)),n===i.size&&s.close()}})})}catch{}});async function*Mo(a,e=!0){for(let t of a)if("stream"in t)yield*t.stream();else if(ArrayBuffer.isView(t))if(e){let n=t.byteOffset,i=t.byteOffset+t.byteLength;for(;n!==i;){let s=Math.min(i-n,Ql),u=t.buffer.slice(n,n+s);n+=u.byteLength,yield new Uint8Array(u)}}else yield t;else{let n=0,i=t;for(;n!==i.size;){let u=await i.slice(n,Math.min(i.size,n+Ql)).arrayBuffer();n+=u.byteLength,yield new Uint8Array(u)}}}var Cb,Ql,Jl,zh,dt,Wr=te(()=>{"use strict";Cb=se(Yl(),1);Ql=65536;Jl=class No{#e=[];#t="";#r=0;#n="transparent";constructor(e=[],t={}){if(typeof e!="object"||e===null)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if(typeof e[Symbol.iterator]!="function")throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if(typeof t!="object"&&typeof t!="function")throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");t===null&&(t={});let n=new TextEncoder;for(let s of e){let u;ArrayBuffer.isView(s)?u=new Uint8Array(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength)):s instanceof ArrayBuffer?u=new Uint8Array(s.slice(0)):s instanceof No?u=s:u=n.encode(`${s}`),this.#r+=ArrayBuffer.isView(u)?u.byteLength:u.size,this.#e.push(u)}this.#n=`${t.endings===void 0?"transparent":t.endings}`;let i=t.type===void 0?"":String(t.type);this.#t=/^[\x20-\x7E]*$/.test(i)?i:""}get size(){return this.#r}get type(){return this.#t}async text(){let e=new TextDecoder,t="";for await(let n of Mo(this.#e,!1))t+=e.decode(n,{stream:!0});return t+=e.decode(),t}async arrayBuffer(){let e=new Uint8Array(this.size),t=0;for await(let n of Mo(this.#e,!1))e.set(n,t),t+=n.length;return e.buffer}stream(){let e=Mo(this.#e,!0);return new globalThis.ReadableStream({type:"bytes",async pull(t){let n=await e.next();n.done?t.close():t.enqueue(n.value)},async cancel(){await e.return()}})}slice(e=0,t=this.size,n=""){let{size:i}=this,s=e<0?Math.max(i+e,0):Math.min(e,i),u=t<0?Math.max(i+t,0):Math.min(t,i),f=Math.max(u-s,0),d=this.#e,c=[],p=0;for(let b of d){if(p>=f)break;let g=ArrayBuffer.isView(b)?b.byteLength:b.size;if(s&&g<=s)s-=g,u-=g;else{let y;ArrayBuffer.isView(b)?(y=b.subarray(s,Math.min(g,u)),p+=y.byteLength):(y=b.slice(s,Math.min(g,u)),p+=y.size),u-=g,c.push(y),s=0}}let _=new No([],{type:String(n).toLowerCase()});return _.#r=f,_.#e=c,_}get[Symbol.toStringTag](){return"Blob"}static[Symbol.hasInstance](e){return e&&typeof e=="object"&&typeof e.constructor=="function"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}};Object.defineProperties(Jl.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});zh=Jl,dt=zh});var Hh,Gh,yr,jo=te(()=>{"use strict";Wr();Hh=class extends dt{#e=0;#t="";constructor(e,t,n={}){if(arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);super(e,n),n===null&&(n={});let i=n.lastModified===void 0?Date.now():Number(n.lastModified);Number.isNaN(i)||(this.#e=i),this.#t=String(t)}get name(){return this.#t}get lastModified(){return this.#e}get[Symbol.toStringTag](){return"File"}static[Symbol.hasInstance](e){return!!e&&e instanceof dt&&/^(File)$/.test(e[Symbol.toStringTag])}},Gh=Hh,yr=Gh});function tu(a,e=dt){var t=`${Zl()}${Zl()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),n=[],i=`--${t}\r
2899
- Content-Disposition: form-data; name="`;return a.forEach((s,u)=>typeof s=="string"?n.push(i+Uo(u)+`"\r
2973
+ `});var Vl={};ne(Vl,{default:()=>Mh,filenames:()=>Nh});var qh,Mh,Nh,zl=te(()=>{"use strict";Rl();Pl();El();Ll();xl();Al();Tl();kl();Cl();Il();Dl();$l();Ol();Fl();Bl();ql();Ml();Nl();Ul();jl();Wl();qh=[_o,bo,yo,wo,vo,So,Ro,Po,Eo,Lo,xo,Ao,To,ko,Co,Io,Do,$o,Oo,Fo,Bo],Mh=qh,Nh=["../luals-addon/factorio/factorio-plugin/arg-parser.lua","../luals-addon/factorio/factorio-plugin/command-line.lua","../luals-addon/factorio/factorio-plugin/object-name.lua","../luals-addon/factorio/factorio-plugin/remote.lua","../luals-addon/factorio/factorio-plugin/require.lua","../luals-addon/factorio/factorio-plugin/storage.lua","../luals-addon/factorio/factorio-plugin/util.lua","../luals-addon/factorio/library/core/lualib/event_handler.lua","../luals-addon/factorio/library/core/lualib/mod-gui.lua","../luals-addon/factorio/library/core/lualib/util.lua","../luals-addon/factorio/library/data/mod-settings.lua","../luals-addon/factorio/library/data/mods.lua","../luals-addon/factorio/library/lua/builtins.lua","../luals-addon/factorio/library/lua/debug.lua","../luals-addon/factorio/library/lua/math.lua","../luals-addon/factorio/library/lua/package.lua","../luals-addon/factorio/library/lua/serpent.lua","../luals-addon/factorio/library/runtime/LuaObject.lua","../luals-addon/factorio/library/runtime/blueprint.lua","../luals-addon/factorio/library/runtime/storage.lua","../luals-addon/factorio/plugin.lua"]});var Hl=F((xb,Uh)=>{Uh.exports={name:"Factorio",files:["control%.lua","data%.lua","data%-updates%.lua","data%-final%-fixes%.lua","settings%.lua","settings%-updates%.lua","settings%-final%-fixes%.lua"],settings:{"Lua.runtime.version":"Lua 5.2","Lua.runtime.path":["?.lua"],"Lua.runtime.special":{__object_name:"type"},"Lua.runtime.builtin":{io:"disable",os:"disable",coroutine:"disable",package:"disable",math:"disable",debug:"disable"},"Lua.diagnostics.globals":["__DebugAdapter","__Profiler"],"Lua.diagnostics.disable":["lowercase-global"]}}});var Yl=F((Hn,Gl)=>{"use strict";(function(a,e){typeof Hn=="object"&&typeof Gl<"u"?e(Hn):typeof define=="function"&&define.amd?define(["exports"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a.WebStreamsPolyfill={}))})(Hn,function(a){"use strict";function e(){}function t(r){return typeof r=="object"&&r!==null||typeof r=="function"}let n=e;function i(r,o){try{Object.defineProperty(r,"name",{value:o,configurable:!0})}catch{}}let s=Promise,u=Promise.prototype.then,f=Promise.reject.bind(s);function d(r){return new s(r)}function c(r){return d(o=>o(r))}function p(r){return f(r)}function _(r,o,l){return u.call(r,o,l)}function b(r,o,l){_(_(r,o,l),void 0,n)}function g(r,o){b(r,o)}function y(r,o){b(r,void 0,o)}function S(r,o,l){return _(r,o,l)}function A(r){_(r,void 0,n)}let E=r=>{if(typeof queueMicrotask=="function")E=queueMicrotask;else{let o=c(void 0);E=l=>_(o,l)}return E(r)};function L(r,o,l){if(typeof r!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(r,o,l)}function Q(r,o,l){try{return c(L(r,o,l))}catch(h){return p(h)}}let G=16384;class Y{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(o){let l=this._back,h=l;l._elements.length===G-1&&(h={_elements:[],_next:void 0}),l._elements.push(o),h!==l&&(this._back=h,l._next=h),++this._size}shift(){let o=this._front,l=o,h=this._cursor,m=h+1,w=o._elements,R=w[h];return m===G&&(l=o._next,m=0),--this._size,this._cursor=m,o!==l&&(this._front=l),w[h]=void 0,R}forEach(o){let l=this._cursor,h=this._front,m=h._elements;for(;(l!==m.length||h._next!==void 0)&&!(l===m.length&&(h=h._next,m=h._elements,l=0,m.length===0));)o(m[l]),++l}peek(){let o=this._front,l=this._cursor;return o._elements[l]}}let J=Symbol("[[AbortSteps]]"),Ve=Symbol("[[ErrorSteps]]"),ze=Symbol("[[CancelSteps]]"),wt=Symbol("[[PullSteps]]"),Mt=Symbol("[[ReleaseSteps]]");function I(r,o){r._ownerReadableStream=o,o._reader=r,o._state==="readable"?X(r):o._state==="closed"?V(r):H(r,o._storedError)}function P(r,o){let l=r._ownerReadableStream;return Ke(l,o)}function $(r){let o=r._ownerReadableStream;o._state==="readable"?we(r,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):ve(r,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),o._readableStreamController[Mt](),o._reader=void 0,r._ownerReadableStream=void 0}function O(r){return new TypeError("Cannot "+r+" a stream using a released reader")}function X(r){r._closedPromise=d((o,l)=>{r._closedPromise_resolve=o,r._closedPromise_reject=l})}function H(r,o){X(r),we(r,o)}function V(r){X(r),ue(r)}function we(r,o){r._closedPromise_reject!==void 0&&(A(r._closedPromise),r._closedPromise_reject(o),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0)}function ve(r,o){H(r,o)}function ue(r){r._closedPromise_resolve!==void 0&&(r._closedPromise_resolve(void 0),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0)}let Nt=Number.isFinite||function(r){return typeof r=="number"&&isFinite(r)},ef=Math.trunc||function(r){return r<0?Math.ceil(r):Math.floor(r)};function tf(r){return typeof r=="object"||typeof r=="function"}function Qe(r,o){if(r!==void 0&&!tf(r))throw new TypeError(`${o} is not an object.`)}function Fe(r,o){if(typeof r!="function")throw new TypeError(`${o} is not a function.`)}function rf(r){return typeof r=="object"&&r!==null||typeof r=="function"}function cs(r,o){if(!rf(r))throw new TypeError(`${o} is not an object.`)}function it(r,o,l){if(r===void 0)throw new TypeError(`Parameter ${o} is required in '${l}'.`)}function Di(r,o,l){if(r===void 0)throw new TypeError(`${o} is required in '${l}'.`)}function $i(r){return Number(r)}function ds(r){return r===0?0:r}function nf(r){return ds(ef(r))}function Oi(r,o){let h=Number.MAX_SAFE_INTEGER,m=Number(r);if(m=ds(m),!Nt(m))throw new TypeError(`${o} is not a finite number`);if(m=nf(m),m<0||m>h)throw new TypeError(`${o} is outside the accepted range of 0 to ${h}, inclusive`);return!Nt(m)||m===0?0:m}function Fi(r,o){if(!xt(r))throw new TypeError(`${o} is not a ReadableStream.`)}function sr(r){return new vt(r)}function fs(r,o){r._reader._readRequests.push(o)}function Bi(r,o,l){let m=r._reader._readRequests.shift();l?m._closeSteps():m._chunkSteps(o)}function fn(r){return r._reader._readRequests.length}function ps(r){let o=r._reader;return!(o===void 0||!St(o))}class vt{constructor(o){if(it(o,1,"ReadableStreamDefaultReader"),Fi(o,"First parameter"),At(o))throw new TypeError("This stream has already been locked for exclusive reading by another reader");I(this,o),this._readRequests=new Y}get closed(){return St(this)?this._closedPromise:p(pn("closed"))}cancel(o=void 0){return St(this)?this._ownerReadableStream===void 0?p(O("cancel")):P(this,o):p(pn("cancel"))}read(){if(!St(this))return p(pn("read"));if(this._ownerReadableStream===void 0)return p(O("read from"));let o,l,h=d((w,R)=>{o=w,l=R});return Ir(this,{_chunkSteps:w=>o({value:w,done:!1}),_closeSteps:()=>o({value:void 0,done:!0}),_errorSteps:w=>l(w)}),h}releaseLock(){if(!St(this))throw pn("releaseLock");this._ownerReadableStream!==void 0&&of(this)}}Object.defineProperties(vt.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),i(vt.prototype.cancel,"cancel"),i(vt.prototype.read,"read"),i(vt.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(vt.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function St(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readRequests")?!1:r instanceof vt}function Ir(r,o){let l=r._ownerReadableStream;l._disturbed=!0,l._state==="closed"?o._closeSteps():l._state==="errored"?o._errorSteps(l._storedError):l._readableStreamController[wt](o)}function of(r){$(r);let o=new TypeError("Reader was released");hs(r,o)}function hs(r,o){let l=r._readRequests;r._readRequests=new Y,l.forEach(h=>{h._errorSteps(o)})}function pn(r){return new TypeError(`ReadableStreamDefaultReader.prototype.${r} can only be used on a ReadableStreamDefaultReader`)}let af=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class ms{constructor(o,l){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=o,this._preventCancel=l}next(){let o=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?S(this._ongoingPromise,o,o):o(),this._ongoingPromise}return(o){let l=()=>this._returnSteps(o);return this._ongoingPromise?S(this._ongoingPromise,l,l):l()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let o=this._reader,l,h,m=d((R,x)=>{l=R,h=x});return Ir(o,{_chunkSteps:R=>{this._ongoingPromise=void 0,E(()=>l({value:R,done:!1}))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,$(o),l({value:void 0,done:!0})},_errorSteps:R=>{this._ongoingPromise=void 0,this._isFinished=!0,$(o),h(R)}}),m}_returnSteps(o){if(this._isFinished)return Promise.resolve({value:o,done:!0});this._isFinished=!0;let l=this._reader;if(!this._preventCancel){let h=P(l,o);return $(l),S(h,()=>({value:o,done:!0}))}return $(l),c({value:o,done:!0})}}let gs={next(){return _s(this)?this._asyncIteratorImpl.next():p(bs("next"))},return(r){return _s(this)?this._asyncIteratorImpl.return(r):p(bs("return"))}};Object.setPrototypeOf(gs,af);function sf(r,o){let l=sr(r),h=new ms(l,o),m=Object.create(gs);return m._asyncIteratorImpl=h,m}function _s(r){if(!t(r)||!Object.prototype.hasOwnProperty.call(r,"_asyncIteratorImpl"))return!1;try{return r._asyncIteratorImpl instanceof ms}catch{return!1}}function bs(r){return new TypeError(`ReadableStreamAsyncIterator.${r} can only be used on a ReadableSteamAsyncIterator`)}let ys=Number.isNaN||function(r){return r!==r};var qi,v,Mi;function Dr(r){return r.slice()}function ws(r,o,l,h,m){new Uint8Array(r).set(new Uint8Array(l,h,m),o)}let ot=r=>(typeof r.transfer=="function"?ot=o=>o.transfer():typeof structuredClone=="function"?ot=o=>structuredClone(o,{transfer:[o]}):ot=o=>o,ot(r)),Rt=r=>(typeof r.detached=="boolean"?Rt=o=>o.detached:Rt=o=>o.byteLength===0,Rt(r));function vs(r,o,l){if(r.slice)return r.slice(o,l);let h=l-o,m=new ArrayBuffer(h);return ws(m,0,r,o,h),m}function hn(r,o){let l=r[o];if(l!=null){if(typeof l!="function")throw new TypeError(`${String(o)} is not a function`);return l}}function lf(r){let o={[Symbol.iterator]:()=>r.iterator},l=async function*(){return yield*o}(),h=l.next;return{iterator:l,nextMethod:h,done:!1}}let Ni=(Mi=(qi=Symbol.asyncIterator)!==null&&qi!==void 0?qi:(v=Symbol.for)===null||v===void 0?void 0:v.call(Symbol,"Symbol.asyncIterator"))!==null&&Mi!==void 0?Mi:"@@asyncIterator";function Ss(r,o="sync",l){if(l===void 0)if(o==="async"){if(l=hn(r,Ni),l===void 0){let w=hn(r,Symbol.iterator),R=Ss(r,"sync",w);return lf(R)}}else l=hn(r,Symbol.iterator);if(l===void 0)throw new TypeError("The object is not iterable");let h=L(l,r,[]);if(!t(h))throw new TypeError("The iterator method must return an object");let m=h.next;return{iterator:h,nextMethod:m,done:!1}}function uf(r){let o=L(r.nextMethod,r.iterator,[]);if(!t(o))throw new TypeError("The iterator.next() method must return an object");return o}function cf(r){return!!r.done}function df(r){return r.value}function ff(r){return!(typeof r!="number"||ys(r)||r<0)}function Rs(r){let o=vs(r.buffer,r.byteOffset,r.byteOffset+r.byteLength);return new Uint8Array(o)}function Ui(r){let o=r._queue.shift();return r._queueTotalSize-=o.size,r._queueTotalSize<0&&(r._queueTotalSize=0),o.value}function ji(r,o,l){if(!ff(l)||l===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");r._queue.push({value:o,size:l}),r._queueTotalSize+=l}function pf(r){return r._queue.peek().value}function Pt(r){r._queue=new Y,r._queueTotalSize=0}function Ps(r){return r===DataView}function hf(r){return Ps(r.constructor)}function mf(r){return Ps(r)?1:r.BYTES_PER_ELEMENT}class Ut{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!Wi(this))throw Gi("view");return this._view}respond(o){if(!Wi(this))throw Gi("respond");if(it(o,1,"respond"),o=Oi(o,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Rt(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");bn(this._associatedReadableByteStreamController,o)}respondWithNewView(o){if(!Wi(this))throw Gi("respondWithNewView");if(it(o,1,"respondWithNewView"),!ArrayBuffer.isView(o))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Rt(o.buffer))throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");yn(this._associatedReadableByteStreamController,o)}}Object.defineProperties(Ut.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),i(Ut.prototype.respond,"respond"),i(Ut.prototype.respondWithNewView,"respondWithNewView"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Ut.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class at{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!jt(this))throw Or("byobRequest");return Ki(this)}get desiredSize(){if(!jt(this))throw Or("desiredSize");return $s(this)}close(){if(!jt(this))throw Or("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let o=this._controlledReadableByteStream._state;if(o!=="readable")throw new TypeError(`The stream (in ${o} state) is not in the readable state and cannot be closed`);$r(this)}enqueue(o){if(!jt(this))throw Or("enqueue");if(it(o,1,"enqueue"),!ArrayBuffer.isView(o))throw new TypeError("chunk must be an array buffer view");if(o.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(o.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");let l=this._controlledReadableByteStream._state;if(l!=="readable")throw new TypeError(`The stream (in ${l} state) is not in the readable state and cannot be enqueued to`);_n(this,o)}error(o=void 0){if(!jt(this))throw Or("error");Be(this,o)}[ze](o){Es(this),Pt(this);let l=this._cancelAlgorithm(o);return gn(this),l}[wt](o){let l=this._controlledReadableByteStream;if(this._queueTotalSize>0){Ds(this,o);return}let h=this._autoAllocateChunkSize;if(h!==void 0){let m;try{m=new ArrayBuffer(h)}catch(R){o._errorSteps(R);return}let w={buffer:m,bufferByteLength:h,byteOffset:0,byteLength:h,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(w)}fs(l,o),Wt(this)}[Mt](){if(this._pendingPullIntos.length>0){let o=this._pendingPullIntos.peek();o.readerType="none",this._pendingPullIntos=new Y,this._pendingPullIntos.push(o)}}}Object.defineProperties(at.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),i(at.prototype.close,"close"),i(at.prototype.enqueue,"enqueue"),i(at.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(at.prototype,Symbol.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function jt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableByteStream")?!1:r instanceof at}function Wi(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_associatedReadableByteStreamController")?!1:r instanceof Ut}function Wt(r){if(!wf(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();b(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,Wt(r)),null),h=>(Be(r,h),null))}function Es(r){zi(r),r._pendingPullIntos=new Y}function Vi(r,o){let l=!1;r._state==="closed"&&(l=!0);let h=Ls(o);o.readerType==="default"?Bi(r,h,l):Lf(r,h,l)}function Ls(r){let o=r.bytesFilled,l=r.elementSize;return new r.viewConstructor(r.buffer,r.byteOffset,o/l)}function mn(r,o,l,h){r._queue.push({buffer:o,byteOffset:l,byteLength:h}),r._queueTotalSize+=h}function xs(r,o,l,h){let m;try{m=vs(o,l,l+h)}catch(w){throw Be(r,w),w}mn(r,m,0,h)}function As(r,o){o.bytesFilled>0&&xs(r,o.buffer,o.byteOffset,o.bytesFilled),lr(r)}function Ts(r,o){let l=Math.min(r._queueTotalSize,o.byteLength-o.bytesFilled),h=o.bytesFilled+l,m=l,w=!1,R=h%o.elementSize,x=h-R;x>=o.minimumFill&&(m=x-o.bytesFilled,w=!0);let N=r._queue;for(;m>0;){let B=N.peek(),j=Math.min(m,B.byteLength),z=o.byteOffset+o.bytesFilled;ws(o.buffer,z,B.buffer,B.byteOffset,j),B.byteLength===j?N.shift():(B.byteOffset+=j,B.byteLength-=j),r._queueTotalSize-=j,ks(r,j,o),m-=j}return w}function ks(r,o,l){l.bytesFilled+=o}function Cs(r){r._queueTotalSize===0&&r._closeRequested?(gn(r),Ur(r._controlledReadableByteStream)):Wt(r)}function zi(r){r._byobRequest!==null&&(r._byobRequest._associatedReadableByteStreamController=void 0,r._byobRequest._view=null,r._byobRequest=null)}function Hi(r){for(;r._pendingPullIntos.length>0;){if(r._queueTotalSize===0)return;let o=r._pendingPullIntos.peek();Ts(r,o)&&(lr(r),Vi(r._controlledReadableByteStream,o))}}function gf(r){let o=r._controlledReadableByteStream._reader;for(;o._readRequests.length>0;){if(r._queueTotalSize===0)return;let l=o._readRequests.shift();Ds(r,l)}}function _f(r,o,l,h){let m=r._controlledReadableByteStream,w=o.constructor,R=mf(w),{byteOffset:x,byteLength:N}=o,B=l*R,j;try{j=ot(o.buffer)}catch(ee){h._errorSteps(ee);return}let z={buffer:j,bufferByteLength:j.byteLength,byteOffset:x,byteLength:N,bytesFilled:0,minimumFill:B,elementSize:R,viewConstructor:w,readerType:"byob"};if(r._pendingPullIntos.length>0){r._pendingPullIntos.push(z),Bs(m,h);return}if(m._state==="closed"){let ee=new w(z.buffer,z.byteOffset,0);h._closeSteps(ee);return}if(r._queueTotalSize>0){if(Ts(r,z)){let ee=Ls(z);Cs(r),h._chunkSteps(ee);return}if(r._closeRequested){let ee=new TypeError("Insufficient bytes to fill elements in the given buffer");Be(r,ee),h._errorSteps(ee);return}}r._pendingPullIntos.push(z),Bs(m,h),Wt(r)}function bf(r,o){o.readerType==="none"&&lr(r);let l=r._controlledReadableByteStream;if(Yi(l))for(;qs(l)>0;){let h=lr(r);Vi(l,h)}}function yf(r,o,l){if(ks(r,o,l),l.readerType==="none"){As(r,l),Hi(r);return}if(l.bytesFilled<l.minimumFill)return;lr(r);let h=l.bytesFilled%l.elementSize;if(h>0){let m=l.byteOffset+l.bytesFilled;xs(r,l.buffer,m-h,h)}l.bytesFilled-=h,Vi(r._controlledReadableByteStream,l),Hi(r)}function Is(r,o){let l=r._pendingPullIntos.peek();zi(r),r._controlledReadableByteStream._state==="closed"?bf(r,l):yf(r,o,l),Wt(r)}function lr(r){return r._pendingPullIntos.shift()}function wf(r){let o=r._controlledReadableByteStream;return o._state!=="readable"||r._closeRequested||!r._started?!1:!!(ps(o)&&fn(o)>0||Yi(o)&&qs(o)>0||$s(r)>0)}function gn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0}function $r(r){let o=r._controlledReadableByteStream;if(!(r._closeRequested||o._state!=="readable")){if(r._queueTotalSize>0){r._closeRequested=!0;return}if(r._pendingPullIntos.length>0){let l=r._pendingPullIntos.peek();if(l.bytesFilled%l.elementSize!==0){let h=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Be(r,h),h}}gn(r),Ur(o)}}function _n(r,o){let l=r._controlledReadableByteStream;if(r._closeRequested||l._state!=="readable")return;let{buffer:h,byteOffset:m,byteLength:w}=o;if(Rt(h))throw new TypeError("chunk's buffer is detached and so cannot be enqueued");let R=ot(h);if(r._pendingPullIntos.length>0){let x=r._pendingPullIntos.peek();if(Rt(x.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");zi(r),x.buffer=ot(x.buffer),x.readerType==="none"&&As(r,x)}if(ps(l))if(gf(r),fn(l)===0)mn(r,R,m,w);else{r._pendingPullIntos.length>0&&lr(r);let x=new Uint8Array(R,m,w);Bi(l,x,!1)}else Yi(l)?(mn(r,R,m,w),Hi(r)):mn(r,R,m,w);Wt(r)}function Be(r,o){let l=r._controlledReadableByteStream;l._state==="readable"&&(Es(r),Pt(r),gn(r),ll(l,o))}function Ds(r,o){let l=r._queue.shift();r._queueTotalSize-=l.byteLength,Cs(r);let h=new Uint8Array(l.buffer,l.byteOffset,l.byteLength);o._chunkSteps(h)}function Ki(r){if(r._byobRequest===null&&r._pendingPullIntos.length>0){let o=r._pendingPullIntos.peek(),l=new Uint8Array(o.buffer,o.byteOffset+o.bytesFilled,o.byteLength-o.bytesFilled),h=Object.create(Ut.prototype);Sf(h,r,l),r._byobRequest=h}return r._byobRequest}function $s(r){let o=r._controlledReadableByteStream._state;return o==="errored"?null:o==="closed"?0:r._strategyHWM-r._queueTotalSize}function bn(r,o){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(o!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(o===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(l.bytesFilled+o>l.byteLength)throw new RangeError("bytesWritten out of range")}l.buffer=ot(l.buffer),Is(r,o)}function yn(r,o){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(o.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(o.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(l.byteOffset+l.bytesFilled!==o.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(l.bufferByteLength!==o.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(l.bytesFilled+o.byteLength>l.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let m=o.byteLength;l.buffer=ot(o.buffer),Is(r,m)}function Os(r,o,l,h,m,w,R){o._controlledReadableByteStream=r,o._pullAgain=!1,o._pulling=!1,o._byobRequest=null,o._queue=o._queueTotalSize=void 0,Pt(o),o._closeRequested=!1,o._started=!1,o._strategyHWM=w,o._pullAlgorithm=h,o._cancelAlgorithm=m,o._autoAllocateChunkSize=R,o._pendingPullIntos=new Y,r._readableStreamController=o;let x=l();b(c(x),()=>(o._started=!0,Wt(o),null),N=>(Be(o,N),null))}function vf(r,o,l){let h=Object.create(at.prototype),m,w,R;o.start!==void 0?m=()=>o.start(h):m=()=>{},o.pull!==void 0?w=()=>o.pull(h):w=()=>c(void 0),o.cancel!==void 0?R=N=>o.cancel(N):R=()=>c(void 0);let x=o.autoAllocateChunkSize;if(x===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");Os(r,h,m,w,R,l,x)}function Sf(r,o,l){r._associatedReadableByteStreamController=o,r._view=l}function Gi(r){return new TypeError(`ReadableStreamBYOBRequest.prototype.${r} can only be used on a ReadableStreamBYOBRequest`)}function Or(r){return new TypeError(`ReadableByteStreamController.prototype.${r} can only be used on a ReadableByteStreamController`)}function Rf(r,o){Qe(r,o);let l=r?.mode;return{mode:l===void 0?void 0:Pf(l,`${o} has member 'mode' that`)}}function Pf(r,o){if(r=`${r}`,r!=="byob")throw new TypeError(`${o} '${r}' is not a valid enumeration value for ReadableStreamReaderMode`);return r}function Ef(r,o){var l;Qe(r,o);let h=(l=r?.min)!==null&&l!==void 0?l:1;return{min:Oi(h,`${o} has member 'min' that`)}}function Fs(r){return new Et(r)}function Bs(r,o){r._reader._readIntoRequests.push(o)}function Lf(r,o,l){let m=r._reader._readIntoRequests.shift();l?m._closeSteps(o):m._chunkSteps(o)}function qs(r){return r._reader._readIntoRequests.length}function Yi(r){let o=r._reader;return!(o===void 0||!Vt(o))}class Et{constructor(o){if(it(o,1,"ReadableStreamBYOBReader"),Fi(o,"First parameter"),At(o))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!jt(o._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");I(this,o),this._readIntoRequests=new Y}get closed(){return Vt(this)?this._closedPromise:p(wn("closed"))}cancel(o=void 0){return Vt(this)?this._ownerReadableStream===void 0?p(O("cancel")):P(this,o):p(wn("cancel"))}read(o,l={}){if(!Vt(this))return p(wn("read"));if(!ArrayBuffer.isView(o))return p(new TypeError("view must be an array buffer view"));if(o.byteLength===0)return p(new TypeError("view must have non-zero byteLength"));if(o.buffer.byteLength===0)return p(new TypeError("view's buffer must have non-zero byteLength"));if(Rt(o.buffer))return p(new TypeError("view's buffer has been detached"));let h;try{h=Ef(l,"options")}catch(B){return p(B)}let m=h.min;if(m===0)return p(new TypeError("options.min must be greater than 0"));if(hf(o)){if(m>o.byteLength)return p(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(m>o.length)return p(new RangeError("options.min must be less than or equal to view's length"));if(this._ownerReadableStream===void 0)return p(O("read from"));let w,R,x=d((B,j)=>{w=B,R=j});return Ms(this,o,m,{_chunkSteps:B=>w({value:B,done:!1}),_closeSteps:B=>w({value:B,done:!0}),_errorSteps:B=>R(B)}),x}releaseLock(){if(!Vt(this))throw wn("releaseLock");this._ownerReadableStream!==void 0&&xf(this)}}Object.defineProperties(Et.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),i(Et.prototype.cancel,"cancel"),i(Et.prototype.read,"read"),i(Et.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Et.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function Vt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readIntoRequests")?!1:r instanceof Et}function Ms(r,o,l,h){let m=r._ownerReadableStream;m._disturbed=!0,m._state==="errored"?h._errorSteps(m._storedError):_f(m._readableStreamController,o,l,h)}function xf(r){$(r);let o=new TypeError("Reader was released");Ns(r,o)}function Ns(r,o){let l=r._readIntoRequests;r._readIntoRequests=new Y,l.forEach(h=>{h._errorSteps(o)})}function wn(r){return new TypeError(`ReadableStreamBYOBReader.prototype.${r} can only be used on a ReadableStreamBYOBReader`)}function Fr(r,o){let{highWaterMark:l}=r;if(l===void 0)return o;if(ys(l)||l<0)throw new RangeError("Invalid highWaterMark");return l}function vn(r){let{size:o}=r;return o||(()=>1)}function Sn(r,o){Qe(r,o);let l=r?.highWaterMark,h=r?.size;return{highWaterMark:l===void 0?void 0:$i(l),size:h===void 0?void 0:Af(h,`${o} has member 'size' that`)}}function Af(r,o){return Fe(r,o),l=>$i(r(l))}function Tf(r,o){Qe(r,o);let l=r?.abort,h=r?.close,m=r?.start,w=r?.type,R=r?.write;return{abort:l===void 0?void 0:kf(l,r,`${o} has member 'abort' that`),close:h===void 0?void 0:Cf(h,r,`${o} has member 'close' that`),start:m===void 0?void 0:If(m,r,`${o} has member 'start' that`),write:R===void 0?void 0:Df(R,r,`${o} has member 'write' that`),type:w}}function kf(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function Cf(r,o,l){return Fe(r,l),()=>Q(r,o,[])}function If(r,o,l){return Fe(r,l),h=>L(r,o,[h])}function Df(r,o,l){return Fe(r,l),(h,m)=>Q(r,o,[h,m])}function Us(r,o){if(!ur(r))throw new TypeError(`${o} is not a WritableStream.`)}function $f(r){if(typeof r!="object"||r===null)return!1;try{return typeof r.aborted=="boolean"}catch{return!1}}let Of=typeof AbortController=="function";function Ff(){if(Of)return new AbortController}class Lt{constructor(o={},l={}){o===void 0?o=null:cs(o,"First parameter");let h=Sn(l,"Second parameter"),m=Tf(o,"First parameter");if(Ws(this),m.type!==void 0)throw new RangeError("Invalid type is specified");let R=vn(h),x=Fr(h,1);Xf(this,m,x,R)}get locked(){if(!ur(this))throw xn("locked");return cr(this)}abort(o=void 0){return ur(this)?cr(this)?p(new TypeError("Cannot abort a stream that already has a writer")):Rn(this,o):p(xn("abort"))}close(){return ur(this)?cr(this)?p(new TypeError("Cannot close a stream that already has a writer")):Je(this)?p(new TypeError("Cannot close an already-closing stream")):Vs(this):p(xn("close"))}getWriter(){if(!ur(this))throw xn("getWriter");return js(this)}}Object.defineProperties(Lt.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),i(Lt.prototype.abort,"abort"),i(Lt.prototype.close,"close"),i(Lt.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Lt.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function js(r){return new st(r)}function Bf(r,o,l,h,m=1,w=()=>1){let R=Object.create(Lt.prototype);Ws(R);let x=Object.create(dr.prototype);return Xs(R,x,r,o,l,h,m,w),R}function Ws(r){r._state="writable",r._storedError=void 0,r._writer=void 0,r._writableStreamController=void 0,r._writeRequests=new Y,r._inFlightWriteRequest=void 0,r._closeRequest=void 0,r._inFlightCloseRequest=void 0,r._pendingAbortRequest=void 0,r._backpressure=!1}function ur(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_writableStreamController")?!1:r instanceof Lt}function cr(r){return r._writer!==void 0}function Rn(r,o){var l;if(r._state==="closed"||r._state==="errored")return c(void 0);r._writableStreamController._abortReason=o,(l=r._writableStreamController._abortController)===null||l===void 0||l.abort(o);let h=r._state;if(h==="closed"||h==="errored")return c(void 0);if(r._pendingAbortRequest!==void 0)return r._pendingAbortRequest._promise;let m=!1;h==="erroring"&&(m=!0,o=void 0);let w=d((R,x)=>{r._pendingAbortRequest={_promise:void 0,_resolve:R,_reject:x,_reason:o,_wasAlreadyErroring:m}});return r._pendingAbortRequest._promise=w,m||Qi(r,o),w}function Vs(r){let o=r._state;if(o==="closed"||o==="errored")return p(new TypeError(`The stream (in ${o} state) is not in the writable state and cannot be closed`));let l=d((m,w)=>{let R={_resolve:m,_reject:w};r._closeRequest=R}),h=r._writer;return h!==void 0&&r._backpressure&&o==="writable"&&oo(h),Qf(r._writableStreamController),l}function qf(r){return d((l,h)=>{let m={_resolve:l,_reject:h};r._writeRequests.push(m)})}function Xi(r,o){if(r._state==="writable"){Qi(r,o);return}Ji(r)}function Qi(r,o){let l=r._writableStreamController;r._state="erroring",r._storedError=o;let h=r._writer;h!==void 0&&Hs(h,o),!Wf(r)&&l._started&&Ji(r)}function Ji(r){r._state="errored",r._writableStreamController[Ve]();let o=r._storedError;if(r._writeRequests.forEach(m=>{m._reject(o)}),r._writeRequests=new Y,r._pendingAbortRequest===void 0){Pn(r);return}let l=r._pendingAbortRequest;if(r._pendingAbortRequest=void 0,l._wasAlreadyErroring){l._reject(o),Pn(r);return}let h=r._writableStreamController[J](l._reason);b(h,()=>(l._resolve(),Pn(r),null),m=>(l._reject(m),Pn(r),null))}function Mf(r){r._inFlightWriteRequest._resolve(void 0),r._inFlightWriteRequest=void 0}function Nf(r,o){r._inFlightWriteRequest._reject(o),r._inFlightWriteRequest=void 0,Xi(r,o)}function Uf(r){r._inFlightCloseRequest._resolve(void 0),r._inFlightCloseRequest=void 0,r._state==="erroring"&&(r._storedError=void 0,r._pendingAbortRequest!==void 0&&(r._pendingAbortRequest._resolve(),r._pendingAbortRequest=void 0)),r._state="closed";let l=r._writer;l!==void 0&&el(l)}function jf(r,o){r._inFlightCloseRequest._reject(o),r._inFlightCloseRequest=void 0,r._pendingAbortRequest!==void 0&&(r._pendingAbortRequest._reject(o),r._pendingAbortRequest=void 0),Xi(r,o)}function Je(r){return!(r._closeRequest===void 0&&r._inFlightCloseRequest===void 0)}function Wf(r){return!(r._inFlightWriteRequest===void 0&&r._inFlightCloseRequest===void 0)}function Vf(r){r._inFlightCloseRequest=r._closeRequest,r._closeRequest=void 0}function zf(r){r._inFlightWriteRequest=r._writeRequests.shift()}function Pn(r){r._closeRequest!==void 0&&(r._closeRequest._reject(r._storedError),r._closeRequest=void 0);let o=r._writer;o!==void 0&&no(o,r._storedError)}function Zi(r,o){let l=r._writer;l!==void 0&&o!==r._backpressure&&(o?ip(l):oo(l)),r._backpressure=o}class st{constructor(o){if(it(o,1,"WritableStreamDefaultWriter"),Us(o,"First parameter"),cr(o))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=o,o._writer=this;let l=o._state;if(l==="writable")!Je(o)&&o._backpressure?Tn(this):tl(this),An(this);else if(l==="erroring")io(this,o._storedError),An(this);else if(l==="closed")tl(this),rp(this);else{let h=o._storedError;io(this,h),Zs(this,h)}}get closed(){return zt(this)?this._closedPromise:p(Ht("closed"))}get desiredSize(){if(!zt(this))throw Ht("desiredSize");if(this._ownerWritableStream===void 0)throw qr("desiredSize");return Yf(this)}get ready(){return zt(this)?this._readyPromise:p(Ht("ready"))}abort(o=void 0){return zt(this)?this._ownerWritableStream===void 0?p(qr("abort")):Hf(this,o):p(Ht("abort"))}close(){if(!zt(this))return p(Ht("close"));let o=this._ownerWritableStream;return o===void 0?p(qr("close")):Je(o)?p(new TypeError("Cannot close an already-closing stream")):zs(this)}releaseLock(){if(!zt(this))throw Ht("releaseLock");this._ownerWritableStream!==void 0&&Ks(this)}write(o=void 0){return zt(this)?this._ownerWritableStream===void 0?p(qr("write to")):Gs(this,o):p(Ht("write"))}}Object.defineProperties(st.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),i(st.prototype.abort,"abort"),i(st.prototype.close,"close"),i(st.prototype.releaseLock,"releaseLock"),i(st.prototype.write,"write"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(st.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function zt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_ownerWritableStream")?!1:r instanceof st}function Hf(r,o){let l=r._ownerWritableStream;return Rn(l,o)}function zs(r){let o=r._ownerWritableStream;return Vs(o)}function Kf(r){let o=r._ownerWritableStream,l=o._state;return Je(o)||l==="closed"?c(void 0):l==="errored"?p(o._storedError):zs(r)}function Gf(r,o){r._closedPromiseState==="pending"?no(r,o):np(r,o)}function Hs(r,o){r._readyPromiseState==="pending"?rl(r,o):op(r,o)}function Yf(r){let o=r._ownerWritableStream,l=o._state;return l==="errored"||l==="erroring"?null:l==="closed"?0:Qs(o._writableStreamController)}function Ks(r){let o=r._ownerWritableStream,l=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");Hs(r,l),Gf(r,l),o._writer=void 0,r._ownerWritableStream=void 0}function Gs(r,o){let l=r._ownerWritableStream,h=l._writableStreamController,m=Jf(h,o);if(l!==r._ownerWritableStream)return p(qr("write to"));let w=l._state;if(w==="errored")return p(l._storedError);if(Je(l)||w==="closed")return p(new TypeError("The stream is closing or closed and cannot be written to"));if(w==="erroring")return p(l._storedError);let R=qf(l);return Zf(h,o,m),R}let Ys={};class dr{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!eo(this))throw ro("abortReason");return this._abortReason}get signal(){if(!eo(this))throw ro("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(o=void 0){if(!eo(this))throw ro("error");this._controlledWritableStream._state==="writable"&&Js(this,o)}[J](o){let l=this._abortAlgorithm(o);return En(this),l}[Ve](){Pt(this)}}Object.defineProperties(dr.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(dr.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function eo(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledWritableStream")?!1:r instanceof dr}function Xs(r,o,l,h,m,w,R,x){o._controlledWritableStream=r,r._writableStreamController=o,o._queue=void 0,o._queueTotalSize=void 0,Pt(o),o._abortReason=void 0,o._abortController=Ff(),o._started=!1,o._strategySizeAlgorithm=x,o._strategyHWM=R,o._writeAlgorithm=h,o._closeAlgorithm=m,o._abortAlgorithm=w;let N=to(o);Zi(r,N);let B=l(),j=c(B);b(j,()=>(o._started=!0,Ln(o),null),z=>(o._started=!0,Xi(r,z),null))}function Xf(r,o,l,h){let m=Object.create(dr.prototype),w,R,x,N;o.start!==void 0?w=()=>o.start(m):w=()=>{},o.write!==void 0?R=B=>o.write(B,m):R=()=>c(void 0),o.close!==void 0?x=()=>o.close():x=()=>c(void 0),o.abort!==void 0?N=B=>o.abort(B):N=()=>c(void 0),Xs(r,m,w,R,x,N,l,h)}function En(r){r._writeAlgorithm=void 0,r._closeAlgorithm=void 0,r._abortAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function Qf(r){ji(r,Ys,0),Ln(r)}function Jf(r,o){try{return r._strategySizeAlgorithm(o)}catch(l){return Br(r,l),1}}function Qs(r){return r._strategyHWM-r._queueTotalSize}function Zf(r,o,l){try{ji(r,o,l)}catch(m){Br(r,m);return}let h=r._controlledWritableStream;if(!Je(h)&&h._state==="writable"){let m=to(r);Zi(h,m)}Ln(r)}function Ln(r){let o=r._controlledWritableStream;if(!r._started||o._inFlightWriteRequest!==void 0)return;if(o._state==="erroring"){Ji(o);return}if(r._queue.length===0)return;let h=pf(r);h===Ys?ep(r):tp(r,h)}function Br(r,o){r._controlledWritableStream._state==="writable"&&Js(r,o)}function ep(r){let o=r._controlledWritableStream;Vf(o),Ui(r);let l=r._closeAlgorithm();En(r),b(l,()=>(Uf(o),null),h=>(jf(o,h),null))}function tp(r,o){let l=r._controlledWritableStream;zf(l);let h=r._writeAlgorithm(o);b(h,()=>{Mf(l);let m=l._state;if(Ui(r),!Je(l)&&m==="writable"){let w=to(r);Zi(l,w)}return Ln(r),null},m=>(l._state==="writable"&&En(r),Nf(l,m),null))}function to(r){return Qs(r)<=0}function Js(r,o){let l=r._controlledWritableStream;En(r),Qi(l,o)}function xn(r){return new TypeError(`WritableStream.prototype.${r} can only be used on a WritableStream`)}function ro(r){return new TypeError(`WritableStreamDefaultController.prototype.${r} can only be used on a WritableStreamDefaultController`)}function Ht(r){return new TypeError(`WritableStreamDefaultWriter.prototype.${r} can only be used on a WritableStreamDefaultWriter`)}function qr(r){return new TypeError("Cannot "+r+" a stream using a released writer")}function An(r){r._closedPromise=d((o,l)=>{r._closedPromise_resolve=o,r._closedPromise_reject=l,r._closedPromiseState="pending"})}function Zs(r,o){An(r),no(r,o)}function rp(r){An(r),el(r)}function no(r,o){r._closedPromise_reject!==void 0&&(A(r._closedPromise),r._closedPromise_reject(o),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="rejected")}function np(r,o){Zs(r,o)}function el(r){r._closedPromise_resolve!==void 0&&(r._closedPromise_resolve(void 0),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="resolved")}function Tn(r){r._readyPromise=d((o,l)=>{r._readyPromise_resolve=o,r._readyPromise_reject=l}),r._readyPromiseState="pending"}function io(r,o){Tn(r),rl(r,o)}function tl(r){Tn(r),oo(r)}function rl(r,o){r._readyPromise_reject!==void 0&&(A(r._readyPromise),r._readyPromise_reject(o),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="rejected")}function ip(r){Tn(r)}function op(r,o){io(r,o)}function oo(r){r._readyPromise_resolve!==void 0&&(r._readyPromise_resolve(void 0),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="fulfilled")}function ap(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof global<"u")return global}let ao=ap();function sp(r){if(!(typeof r=="function"||typeof r=="object")||r.name!=="DOMException")return!1;try{return new r,!0}catch{return!1}}function lp(){let r=ao?.DOMException;return sp(r)?r:void 0}function up(){let r=function(l,h){this.message=l||"",this.name=h||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return i(r,"DOMException"),r.prototype=Object.create(Error.prototype),Object.defineProperty(r.prototype,"constructor",{value:r,writable:!0,configurable:!0}),r}let cp=lp()||up();function nl(r,o,l,h,m,w){let R=sr(r),x=js(o);r._disturbed=!0;let N=!1,B=c(void 0);return d((j,z)=>{let ee;if(w!==void 0){if(ee=()=>{let M=w.reason!==void 0?w.reason:new cp("Aborted","AbortError"),K=[];h||K.push(()=>o._state==="writable"?Rn(o,M):c(void 0)),m||K.push(()=>r._state==="readable"?Ke(r,M):c(void 0)),Se(()=>Promise.all(K.map(re=>re())),!0,M)},w.aborted){ee();return}w.addEventListener("abort",ee)}function Ge(){return d((M,K)=>{function re(Ae){Ae?M():_(mr(),re,K)}re(!1)})}function mr(){return N?c(!0):_(x._readyPromise,()=>d((M,K)=>{Ir(R,{_chunkSteps:re=>{B=_(Gs(x,re),void 0,e),M(!1)},_closeSteps:()=>M(!0),_errorSteps:K})}))}if(ut(r,R._closedPromise,M=>(h?qe(!0,M):Se(()=>Rn(o,M),!0,M),null)),ut(o,x._closedPromise,M=>(m?qe(!0,M):Se(()=>Ke(r,M),!0,M),null)),_e(r,R._closedPromise,()=>(l?qe():Se(()=>Kf(x)),null)),Je(o)||o._state==="closed"){let M=new TypeError("the destination writable stream closed before all data could be piped to it");m?qe(!0,M):Se(()=>Ke(r,M),!0,M)}A(Ge());function kt(){let M=B;return _(B,()=>M!==B?kt():void 0)}function ut(M,K,re){M._state==="errored"?re(M._storedError):y(K,re)}function _e(M,K,re){M._state==="closed"?re():g(K,re)}function Se(M,K,re){if(N)return;N=!0,o._state==="writable"&&!Je(o)?g(kt(),Ae):Ae();function Ae(){return b(M(),()=>ct(K,re),gr=>ct(!0,gr)),null}}function qe(M,K){N||(N=!0,o._state==="writable"&&!Je(o)?g(kt(),()=>ct(M,K)):ct(M,K))}function ct(M,K){return Ks(x),$(R),w!==void 0&&w.removeEventListener("abort",ee),M?z(K):j(void 0),null}})}class lt{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!kn(this))throw In("desiredSize");return so(this)}close(){if(!kn(this))throw In("close");if(!pr(this))throw new TypeError("The stream is not in a state that permits close");Kt(this)}enqueue(o=void 0){if(!kn(this))throw In("enqueue");if(!pr(this))throw new TypeError("The stream is not in a state that permits enqueue");return fr(this,o)}error(o=void 0){if(!kn(this))throw In("error");He(this,o)}[ze](o){Pt(this);let l=this._cancelAlgorithm(o);return Cn(this),l}[wt](o){let l=this._controlledReadableStream;if(this._queue.length>0){let h=Ui(this);this._closeRequested&&this._queue.length===0?(Cn(this),Ur(l)):Mr(this),o._chunkSteps(h)}else fs(l,o),Mr(this)}[Mt](){}}Object.defineProperties(lt.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),i(lt.prototype.close,"close"),i(lt.prototype.enqueue,"enqueue"),i(lt.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(lt.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function kn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableStream")?!1:r instanceof lt}function Mr(r){if(!il(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();b(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,Mr(r)),null),h=>(He(r,h),null))}function il(r){let o=r._controlledReadableStream;return!pr(r)||!r._started?!1:!!(At(o)&&fn(o)>0||so(r)>0)}function Cn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function Kt(r){if(!pr(r))return;let o=r._controlledReadableStream;r._closeRequested=!0,r._queue.length===0&&(Cn(r),Ur(o))}function fr(r,o){if(!pr(r))return;let l=r._controlledReadableStream;if(At(l)&&fn(l)>0)Bi(l,o,!1);else{let h;try{h=r._strategySizeAlgorithm(o)}catch(m){throw He(r,m),m}try{ji(r,o,h)}catch(m){throw He(r,m),m}}Mr(r)}function He(r,o){let l=r._controlledReadableStream;l._state==="readable"&&(Pt(r),Cn(r),ll(l,o))}function so(r){let o=r._controlledReadableStream._state;return o==="errored"?null:o==="closed"?0:r._strategyHWM-r._queueTotalSize}function dp(r){return!il(r)}function pr(r){let o=r._controlledReadableStream._state;return!r._closeRequested&&o==="readable"}function ol(r,o,l,h,m,w,R){o._controlledReadableStream=r,o._queue=void 0,o._queueTotalSize=void 0,Pt(o),o._started=!1,o._closeRequested=!1,o._pullAgain=!1,o._pulling=!1,o._strategySizeAlgorithm=R,o._strategyHWM=w,o._pullAlgorithm=h,o._cancelAlgorithm=m,r._readableStreamController=o;let x=l();b(c(x),()=>(o._started=!0,Mr(o),null),N=>(He(o,N),null))}function fp(r,o,l,h){let m=Object.create(lt.prototype),w,R,x;o.start!==void 0?w=()=>o.start(m):w=()=>{},o.pull!==void 0?R=()=>o.pull(m):R=()=>c(void 0),o.cancel!==void 0?x=N=>o.cancel(N):x=()=>c(void 0),ol(r,m,w,R,x,l,h)}function In(r){return new TypeError(`ReadableStreamDefaultController.prototype.${r} can only be used on a ReadableStreamDefaultController`)}function pp(r,o){return jt(r._readableStreamController)?mp(r):hp(r)}function hp(r,o){let l=sr(r),h=!1,m=!1,w=!1,R=!1,x,N,B,j,z,ee=d(_e=>{z=_e});function Ge(){return h?(m=!0,c(void 0)):(h=!0,Ir(l,{_chunkSteps:Se=>{E(()=>{m=!1;let qe=Se,ct=Se;w||fr(B._readableStreamController,qe),R||fr(j._readableStreamController,ct),h=!1,m&&Ge()})},_closeSteps:()=>{h=!1,w||Kt(B._readableStreamController),R||Kt(j._readableStreamController),(!w||!R)&&z(void 0)},_errorSteps:()=>{h=!1}}),c(void 0))}function mr(_e){if(w=!0,x=_e,R){let Se=Dr([x,N]),qe=Ke(r,Se);z(qe)}return ee}function kt(_e){if(R=!0,N=_e,w){let Se=Dr([x,N]),qe=Ke(r,Se);z(qe)}return ee}function ut(){}return B=Nr(ut,Ge,mr),j=Nr(ut,Ge,kt),y(l._closedPromise,_e=>(He(B._readableStreamController,_e),He(j._readableStreamController,_e),(!w||!R)&&z(void 0),null)),[B,j]}function mp(r){let o=sr(r),l=!1,h=!1,m=!1,w=!1,R=!1,x,N,B,j,z,ee=d(M=>{z=M});function Ge(M){y(M._closedPromise,K=>(M!==o||(Be(B._readableStreamController,K),Be(j._readableStreamController,K),(!w||!R)&&z(void 0)),null))}function mr(){Vt(o)&&($(o),o=sr(r),Ge(o)),Ir(o,{_chunkSteps:K=>{E(()=>{h=!1,m=!1;let re=K,Ae=K;if(!w&&!R)try{Ae=Rs(K)}catch(gr){Be(B._readableStreamController,gr),Be(j._readableStreamController,gr),z(Ke(r,gr));return}w||_n(B._readableStreamController,re),R||_n(j._readableStreamController,Ae),l=!1,h?ut():m&&_e()})},_closeSteps:()=>{l=!1,w||$r(B._readableStreamController),R||$r(j._readableStreamController),B._readableStreamController._pendingPullIntos.length>0&&bn(B._readableStreamController,0),j._readableStreamController._pendingPullIntos.length>0&&bn(j._readableStreamController,0),(!w||!R)&&z(void 0)},_errorSteps:()=>{l=!1}})}function kt(M,K){St(o)&&($(o),o=Fs(r),Ge(o));let re=K?j:B,Ae=K?B:j;Ms(o,M,1,{_chunkSteps:_r=>{E(()=>{h=!1,m=!1;let br=K?R:w;if(K?w:R)br||yn(re._readableStreamController,_r);else{let vl;try{vl=Rs(_r)}catch(po){Be(re._readableStreamController,po),Be(Ae._readableStreamController,po),z(Ke(r,po));return}br||yn(re._readableStreamController,_r),_n(Ae._readableStreamController,vl)}l=!1,h?ut():m&&_e()})},_closeSteps:_r=>{l=!1;let br=K?R:w,Nn=K?w:R;br||$r(re._readableStreamController),Nn||$r(Ae._readableStreamController),_r!==void 0&&(br||yn(re._readableStreamController,_r),!Nn&&Ae._readableStreamController._pendingPullIntos.length>0&&bn(Ae._readableStreamController,0)),(!br||!Nn)&&z(void 0)},_errorSteps:()=>{l=!1}})}function ut(){if(l)return h=!0,c(void 0);l=!0;let M=Ki(B._readableStreamController);return M===null?mr():kt(M._view,!1),c(void 0)}function _e(){if(l)return m=!0,c(void 0);l=!0;let M=Ki(j._readableStreamController);return M===null?mr():kt(M._view,!0),c(void 0)}function Se(M){if(w=!0,x=M,R){let K=Dr([x,N]),re=Ke(r,K);z(re)}return ee}function qe(M){if(R=!0,N=M,w){let K=Dr([x,N]),re=Ke(r,K);z(re)}return ee}function ct(){}return B=sl(ct,ut,Se),j=sl(ct,_e,qe),Ge(o),[B,j]}function gp(r){return t(r)&&typeof r.getReader<"u"}function _p(r){return gp(r)?yp(r.getReader()):bp(r)}function bp(r){let o,l=Ss(r,"async"),h=e;function m(){let R;try{R=uf(l)}catch(N){return p(N)}let x=c(R);return S(x,N=>{if(!t(N))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if(cf(N))Kt(o._readableStreamController);else{let j=df(N);fr(o._readableStreamController,j)}})}function w(R){let x=l.iterator,N;try{N=hn(x,"return")}catch(z){return p(z)}if(N===void 0)return c(void 0);let B;try{B=L(N,x,[R])}catch(z){return p(z)}let j=c(B);return S(j,z=>{if(!t(z))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return o=Nr(h,m,w,0),o}function yp(r){let o,l=e;function h(){let w;try{w=r.read()}catch(R){return p(R)}return S(w,R=>{if(!t(R))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(R.done)Kt(o._readableStreamController);else{let x=R.value;fr(o._readableStreamController,x)}})}function m(w){try{return c(r.cancel(w))}catch(R){return p(R)}}return o=Nr(l,h,m,0),o}function wp(r,o){Qe(r,o);let l=r,h=l?.autoAllocateChunkSize,m=l?.cancel,w=l?.pull,R=l?.start,x=l?.type;return{autoAllocateChunkSize:h===void 0?void 0:Oi(h,`${o} has member 'autoAllocateChunkSize' that`),cancel:m===void 0?void 0:vp(m,l,`${o} has member 'cancel' that`),pull:w===void 0?void 0:Sp(w,l,`${o} has member 'pull' that`),start:R===void 0?void 0:Rp(R,l,`${o} has member 'start' that`),type:x===void 0?void 0:Pp(x,`${o} has member 'type' that`)}}function vp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function Sp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function Rp(r,o,l){return Fe(r,l),h=>L(r,o,[h])}function Pp(r,o){if(r=`${r}`,r!=="bytes")throw new TypeError(`${o} '${r}' is not a valid enumeration value for ReadableStreamType`);return r}function Ep(r,o){return Qe(r,o),{preventCancel:!!r?.preventCancel}}function al(r,o){Qe(r,o);let l=r?.preventAbort,h=r?.preventCancel,m=r?.preventClose,w=r?.signal;return w!==void 0&&Lp(w,`${o} has member 'signal' that`),{preventAbort:!!l,preventCancel:!!h,preventClose:!!m,signal:w}}function Lp(r,o){if(!$f(r))throw new TypeError(`${o} is not an AbortSignal.`)}function xp(r,o){Qe(r,o);let l=r?.readable;Di(l,"readable","ReadableWritablePair"),Fi(l,`${o} has member 'readable' that`);let h=r?.writable;return Di(h,"writable","ReadableWritablePair"),Us(h,`${o} has member 'writable' that`),{readable:l,writable:h}}class me{constructor(o={},l={}){o===void 0?o=null:cs(o,"First parameter");let h=Sn(l,"Second parameter"),m=wp(o,"First parameter");if(lo(this),m.type==="bytes"){if(h.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");let w=Fr(h,0);vf(this,m,w)}else{let w=vn(h),R=Fr(h,1);fp(this,m,R,w)}}get locked(){if(!xt(this))throw Gt("locked");return At(this)}cancel(o=void 0){return xt(this)?At(this)?p(new TypeError("Cannot cancel a stream that already has a reader")):Ke(this,o):p(Gt("cancel"))}getReader(o=void 0){if(!xt(this))throw Gt("getReader");return Rf(o,"First parameter").mode===void 0?sr(this):Fs(this)}pipeThrough(o,l={}){if(!xt(this))throw Gt("pipeThrough");it(o,1,"pipeThrough");let h=xp(o,"First parameter"),m=al(l,"Second parameter");if(At(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(cr(h.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");let w=nl(this,h.writable,m.preventClose,m.preventAbort,m.preventCancel,m.signal);return A(w),h.readable}pipeTo(o,l={}){if(!xt(this))return p(Gt("pipeTo"));if(o===void 0)return p("Parameter 1 is required in 'pipeTo'.");if(!ur(o))return p(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let h;try{h=al(l,"Second parameter")}catch(m){return p(m)}return At(this)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):cr(o)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):nl(this,o,h.preventClose,h.preventAbort,h.preventCancel,h.signal)}tee(){if(!xt(this))throw Gt("tee");let o=pp(this);return Dr(o)}values(o=void 0){if(!xt(this))throw Gt("values");let l=Ep(o,"First parameter");return sf(this,l.preventCancel)}[Ni](o){return this.values(o)}static from(o){return _p(o)}}Object.defineProperties(me,{from:{enumerable:!0}}),Object.defineProperties(me.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),i(me.from,"from"),i(me.prototype.cancel,"cancel"),i(me.prototype.getReader,"getReader"),i(me.prototype.pipeThrough,"pipeThrough"),i(me.prototype.pipeTo,"pipeTo"),i(me.prototype.tee,"tee"),i(me.prototype.values,"values"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(me.prototype,Symbol.toStringTag,{value:"ReadableStream",configurable:!0}),Object.defineProperty(me.prototype,Ni,{value:me.prototype.values,writable:!0,configurable:!0});function Nr(r,o,l,h=1,m=()=>1){let w=Object.create(me.prototype);lo(w);let R=Object.create(lt.prototype);return ol(w,R,r,o,l,h,m),w}function sl(r,o,l){let h=Object.create(me.prototype);lo(h);let m=Object.create(at.prototype);return Os(h,m,r,o,l,0,void 0),h}function lo(r){r._state="readable",r._reader=void 0,r._storedError=void 0,r._disturbed=!1}function xt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readableStreamController")?!1:r instanceof me}function At(r){return r._reader!==void 0}function Ke(r,o){if(r._disturbed=!0,r._state==="closed")return c(void 0);if(r._state==="errored")return p(r._storedError);Ur(r);let l=r._reader;if(l!==void 0&&Vt(l)){let m=l._readIntoRequests;l._readIntoRequests=new Y,m.forEach(w=>{w._closeSteps(void 0)})}let h=r._readableStreamController[ze](o);return S(h,e)}function Ur(r){r._state="closed";let o=r._reader;if(o!==void 0&&(ue(o),St(o))){let l=o._readRequests;o._readRequests=new Y,l.forEach(h=>{h._closeSteps()})}}function ll(r,o){r._state="errored",r._storedError=o;let l=r._reader;l!==void 0&&(we(l,o),St(l)?hs(l,o):Ns(l,o))}function Gt(r){return new TypeError(`ReadableStream.prototype.${r} can only be used on a ReadableStream`)}function ul(r,o){Qe(r,o);let l=r?.highWaterMark;return Di(l,"highWaterMark","QueuingStrategyInit"),{highWaterMark:$i(l)}}let cl=r=>r.byteLength;i(cl,"size");class Dn{constructor(o){it(o,1,"ByteLengthQueuingStrategy"),o=ul(o,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=o.highWaterMark}get highWaterMark(){if(!fl(this))throw dl("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!fl(this))throw dl("size");return cl}}Object.defineProperties(Dn.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Dn.prototype,Symbol.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function dl(r){return new TypeError(`ByteLengthQueuingStrategy.prototype.${r} can only be used on a ByteLengthQueuingStrategy`)}function fl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_byteLengthQueuingStrategyHighWaterMark")?!1:r instanceof Dn}let pl=()=>1;i(pl,"size");class $n{constructor(o){it(o,1,"CountQueuingStrategy"),o=ul(o,"First parameter"),this._countQueuingStrategyHighWaterMark=o.highWaterMark}get highWaterMark(){if(!ml(this))throw hl("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!ml(this))throw hl("size");return pl}}Object.defineProperties($n.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty($n.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function hl(r){return new TypeError(`CountQueuingStrategy.prototype.${r} can only be used on a CountQueuingStrategy`)}function ml(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_countQueuingStrategyHighWaterMark")?!1:r instanceof $n}function Ap(r,o){Qe(r,o);let l=r?.cancel,h=r?.flush,m=r?.readableType,w=r?.start,R=r?.transform,x=r?.writableType;return{cancel:l===void 0?void 0:Ip(l,r,`${o} has member 'cancel' that`),flush:h===void 0?void 0:Tp(h,r,`${o} has member 'flush' that`),readableType:m,start:w===void 0?void 0:kp(w,r,`${o} has member 'start' that`),transform:R===void 0?void 0:Cp(R,r,`${o} has member 'transform' that`),writableType:x}}function Tp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function kp(r,o,l){return Fe(r,l),h=>L(r,o,[h])}function Cp(r,o,l){return Fe(r,l),(h,m)=>Q(r,o,[h,m])}function Ip(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}class On{constructor(o={},l={},h={}){o===void 0&&(o=null);let m=Sn(l,"Second parameter"),w=Sn(h,"Third parameter"),R=Ap(o,"First parameter");if(R.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(R.writableType!==void 0)throw new RangeError("Invalid writableType specified");let x=Fr(w,0),N=vn(w),B=Fr(m,1),j=vn(m),z,ee=d(Ge=>{z=Ge});Dp(this,ee,B,j,x,N),Op(this,R),R.start!==void 0?z(R.start(this._transformStreamController)):z(void 0)}get readable(){if(!gl(this))throw wl("readable");return this._readable}get writable(){if(!gl(this))throw wl("writable");return this._writable}}Object.defineProperties(On.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(On.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function Dp(r,o,l,h,m,w){function R(){return o}function x(ee){return qp(r,ee)}function N(ee){return Mp(r,ee)}function B(){return Np(r)}r._writable=Bf(R,x,B,N,l,h);function j(){return Up(r)}function z(ee){return jp(r,ee)}r._readable=Nr(R,j,z,m,w),r._backpressure=void 0,r._backpressureChangePromise=void 0,r._backpressureChangePromise_resolve=void 0,Fn(r,!0),r._transformStreamController=void 0}function gl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_transformStreamController")?!1:r instanceof On}function _l(r,o){He(r._readable._readableStreamController,o),uo(r,o)}function uo(r,o){qn(r._transformStreamController),Br(r._writable._writableStreamController,o),co(r)}function co(r){r._backpressure&&Fn(r,!1)}function Fn(r,o){r._backpressureChangePromise!==void 0&&r._backpressureChangePromise_resolve(),r._backpressureChangePromise=d(l=>{r._backpressureChangePromise_resolve=l}),r._backpressure=o}class Tt{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Bn(this))throw Mn("desiredSize");let o=this._controlledTransformStream._readable._readableStreamController;return so(o)}enqueue(o=void 0){if(!Bn(this))throw Mn("enqueue");bl(this,o)}error(o=void 0){if(!Bn(this))throw Mn("error");Fp(this,o)}terminate(){if(!Bn(this))throw Mn("terminate");Bp(this)}}Object.defineProperties(Tt.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),i(Tt.prototype.enqueue,"enqueue"),i(Tt.prototype.error,"error"),i(Tt.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Tt.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function Bn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledTransformStream")?!1:r instanceof Tt}function $p(r,o,l,h,m){o._controlledTransformStream=r,r._transformStreamController=o,o._transformAlgorithm=l,o._flushAlgorithm=h,o._cancelAlgorithm=m,o._finishPromise=void 0,o._finishPromise_resolve=void 0,o._finishPromise_reject=void 0}function Op(r,o){let l=Object.create(Tt.prototype),h,m,w;o.transform!==void 0?h=R=>o.transform(R,l):h=R=>{try{return bl(l,R),c(void 0)}catch(x){return p(x)}},o.flush!==void 0?m=()=>o.flush(l):m=()=>c(void 0),o.cancel!==void 0?w=R=>o.cancel(R):w=()=>c(void 0),$p(r,l,h,m,w)}function qn(r){r._transformAlgorithm=void 0,r._flushAlgorithm=void 0,r._cancelAlgorithm=void 0}function bl(r,o){let l=r._controlledTransformStream,h=l._readable._readableStreamController;if(!pr(h))throw new TypeError("Readable side is not in a state that permits enqueue");try{fr(h,o)}catch(w){throw uo(l,w),l._readable._storedError}dp(h)!==l._backpressure&&Fn(l,!0)}function Fp(r,o){_l(r._controlledTransformStream,o)}function yl(r,o){let l=r._transformAlgorithm(o);return S(l,void 0,h=>{throw _l(r._controlledTransformStream,h),h})}function Bp(r){let o=r._controlledTransformStream,l=o._readable._readableStreamController;Kt(l);let h=new TypeError("TransformStream terminated");uo(o,h)}function qp(r,o){let l=r._transformStreamController;if(r._backpressure){let h=r._backpressureChangePromise;return S(h,()=>{let m=r._writable;if(m._state==="erroring")throw m._storedError;return yl(l,o)})}return yl(l,o)}function Mp(r,o){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._readable;l._finishPromise=d((w,R)=>{l._finishPromise_resolve=w,l._finishPromise_reject=R});let m=l._cancelAlgorithm(o);return qn(l),b(m,()=>(h._state==="errored"?hr(l,h._storedError):(He(h._readableStreamController,o),fo(l)),null),w=>(He(h._readableStreamController,w),hr(l,w),null)),l._finishPromise}function Np(r){let o=r._transformStreamController;if(o._finishPromise!==void 0)return o._finishPromise;let l=r._readable;o._finishPromise=d((m,w)=>{o._finishPromise_resolve=m,o._finishPromise_reject=w});let h=o._flushAlgorithm();return qn(o),b(h,()=>(l._state==="errored"?hr(o,l._storedError):(Kt(l._readableStreamController),fo(o)),null),m=>(He(l._readableStreamController,m),hr(o,m),null)),o._finishPromise}function Up(r){return Fn(r,!1),r._backpressureChangePromise}function jp(r,o){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._writable;l._finishPromise=d((w,R)=>{l._finishPromise_resolve=w,l._finishPromise_reject=R});let m=l._cancelAlgorithm(o);return qn(l),b(m,()=>(h._state==="errored"?hr(l,h._storedError):(Br(h._writableStreamController,o),co(r),fo(l)),null),w=>(Br(h._writableStreamController,w),co(r),hr(l,w),null)),l._finishPromise}function Mn(r){return new TypeError(`TransformStreamDefaultController.prototype.${r} can only be used on a TransformStreamDefaultController`)}function fo(r){r._finishPromise_resolve!==void 0&&(r._finishPromise_resolve(),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function hr(r,o){r._finishPromise_reject!==void 0&&(A(r._finishPromise),r._finishPromise_reject(o),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function wl(r){return new TypeError(`TransformStream.prototype.${r} can only be used on a TransformStream`)}a.ByteLengthQueuingStrategy=Dn,a.CountQueuingStrategy=$n,a.ReadableByteStreamController=at,a.ReadableStream=me,a.ReadableStreamBYOBReader=Et,a.ReadableStreamBYOBRequest=Ut,a.ReadableStreamDefaultController=lt,a.ReadableStreamDefaultReader=vt,a.TransformStream=On,a.TransformStreamDefaultController=Tt,a.WritableStream=Lt,a.WritableStreamDefaultController=dr,a.WritableStreamDefaultWriter=st})});var Xl=F(()=>{"use strict";if(!globalThis.ReadableStream)try{let a=require("node:process"),{emitWarning:e}=a;try{a.emitWarning=()=>{},Object.assign(globalThis,require("node:stream/web")),a.emitWarning=e}catch(t){throw a.emitWarning=e,t}}catch{Object.assign(globalThis,Yl())}try{let{Blob:a}=require("buffer");a&&!a.prototype.stream&&(a.prototype.stream=function(t){let n=0,i=this;return new ReadableStream({type:"bytes",async pull(s){let f=await i.slice(n,Math.min(i.size,n+65536)).arrayBuffer();n+=f.byteLength,s.enqueue(new Uint8Array(f)),n===i.size&&s.close()}})})}catch{}});async function*Mo(a,e=!0){for(let t of a)if("stream"in t)yield*t.stream();else if(ArrayBuffer.isView(t))if(e){let n=t.byteOffset,i=t.byteOffset+t.byteLength;for(;n!==i;){let s=Math.min(i-n,Ql),u=t.buffer.slice(n,n+s);n+=u.byteLength,yield new Uint8Array(u)}}else yield t;else{let n=0,i=t;for(;n!==i.size;){let u=await i.slice(n,Math.min(i.size,n+Ql)).arrayBuffer();n+=u.byteLength,yield new Uint8Array(u)}}}var Ib,Ql,Jl,zh,dt,Wr=te(()=>{"use strict";Ib=se(Xl(),1);Ql=65536;Jl=class No{#e=[];#t="";#r=0;#n="transparent";constructor(e=[],t={}){if(typeof e!="object"||e===null)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if(typeof e[Symbol.iterator]!="function")throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if(typeof t!="object"&&typeof t!="function")throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");t===null&&(t={});let n=new TextEncoder;for(let s of e){let u;ArrayBuffer.isView(s)?u=new Uint8Array(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength)):s instanceof ArrayBuffer?u=new Uint8Array(s.slice(0)):s instanceof No?u=s:u=n.encode(`${s}`),this.#r+=ArrayBuffer.isView(u)?u.byteLength:u.size,this.#e.push(u)}this.#n=`${t.endings===void 0?"transparent":t.endings}`;let i=t.type===void 0?"":String(t.type);this.#t=/^[\x20-\x7E]*$/.test(i)?i:""}get size(){return this.#r}get type(){return this.#t}async text(){let e=new TextDecoder,t="";for await(let n of Mo(this.#e,!1))t+=e.decode(n,{stream:!0});return t+=e.decode(),t}async arrayBuffer(){let e=new Uint8Array(this.size),t=0;for await(let n of Mo(this.#e,!1))e.set(n,t),t+=n.length;return e.buffer}stream(){let e=Mo(this.#e,!0);return new globalThis.ReadableStream({type:"bytes",async pull(t){let n=await e.next();n.done?t.close():t.enqueue(n.value)},async cancel(){await e.return()}})}slice(e=0,t=this.size,n=""){let{size:i}=this,s=e<0?Math.max(i+e,0):Math.min(e,i),u=t<0?Math.max(i+t,0):Math.min(t,i),f=Math.max(u-s,0),d=this.#e,c=[],p=0;for(let b of d){if(p>=f)break;let g=ArrayBuffer.isView(b)?b.byteLength:b.size;if(s&&g<=s)s-=g,u-=g;else{let y;ArrayBuffer.isView(b)?(y=b.subarray(s,Math.min(g,u)),p+=y.byteLength):(y=b.slice(s,Math.min(g,u)),p+=y.size),u-=g,c.push(y),s=0}}let _=new No([],{type:String(n).toLowerCase()});return _.#r=f,_.#e=c,_}get[Symbol.toStringTag](){return"Blob"}static[Symbol.hasInstance](e){return e&&typeof e=="object"&&typeof e.constructor=="function"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}};Object.defineProperties(Jl.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});zh=Jl,dt=zh});var Hh,Kh,yr,Uo=te(()=>{"use strict";Wr();Hh=class extends dt{#e=0;#t="";constructor(e,t,n={}){if(arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);super(e,n),n===null&&(n={});let i=n.lastModified===void 0?Date.now():Number(n.lastModified);Number.isNaN(i)||(this.#e=i),this.#t=String(t)}get name(){return this.#t}get lastModified(){return this.#e}get[Symbol.toStringTag](){return"File"}static[Symbol.hasInstance](e){return!!e&&e instanceof dt&&/^(File)$/.test(e[Symbol.toStringTag])}},Kh=Hh,yr=Kh});function tu(a,e=dt){var t=`${Zl()}${Zl()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),n=[],i=`--${t}\r
2974
+ Content-Disposition: form-data; name="`;return a.forEach((s,u)=>typeof s=="string"?n.push(i+jo(u)+`"\r
2900
2975
  \r
2901
2976
  ${s.replace(/\r(?!\n)|(?<!\r)\n/g,`\r
2902
2977
  `)}\r
2903
- `):n.push(i+Uo(u)+`"; filename="${Uo(s.name,1)}"\r
2978
+ `):n.push(i+jo(u)+`"; filename="${jo(s.name,1)}"\r
2904
2979
  Content-Type: ${s.type||"application/octet-stream"}\r
2905
2980
  \r
2906
2981
  `,s,`\r
2907
- `)),n.push(`--${t}--`),new e(n,{type:"multipart/form-data; boundary="+t})}var Vr,Kh,Xh,Zl,Yh,eu,Uo,Qt,Jt,Gn=te(()=>{"use strict";Wr();jo();({toStringTag:Vr,iterator:Kh,hasInstance:Xh}=Symbol),Zl=Math.random,Yh="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),eu=(a,e,t)=>(a+="",/^(Blob|File)$/.test(e&&e[Vr])?[(t=t!==void 0?t+"":e[Vr]=="File"?e.name:"blob",a),e.name!==t||e[Vr]=="blob"?new yr([e],t,e):e]:[a,e+""]),Uo=(a,e)=>(e?a:a.replace(/\r?\n|\r/g,`\r
2908
- `)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Qt=(a,e,t)=>{if(e.length<t)throw new TypeError(`Failed to execute '${a}' on 'FormData': ${t} arguments required, but only ${e.length} present.`)},Jt=class{#e=[];constructor(...e){if(e.length)throw new TypeError("Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.")}get[Vr](){return"FormData"}[Kh](){return this.entries()}static[Xh](e){return e&&typeof e=="object"&&e[Vr]==="FormData"&&!Yh.some(t=>typeof e[t]!="function")}append(...e){Qt("append",arguments,2),this.#e.push(eu(...e))}delete(e){Qt("delete",arguments,1),e+="",this.#e=this.#e.filter(([t])=>t!==e)}get(e){Qt("get",arguments,1),e+="";for(var t=this.#e,n=t.length,i=0;i<n;i++)if(t[i][0]===e)return t[i][1];return null}getAll(e,t){return Qt("getAll",arguments,1),t=[],e+="",this.#e.forEach(n=>n[0]===e&&t.push(n[1])),t}has(e){return Qt("has",arguments,1),e+="",this.#e.some(t=>t[0]===e)}forEach(e,t){Qt("forEach",arguments,1);for(var[n,i]of this)e.call(t,i,n,this)}set(...e){Qt("set",arguments,2);var t=[],n=!0;e=eu(...e),this.#e.forEach(i=>{i[0]===e[0]?n&&(n=!t.push(e)):t.push(i)}),n&&t.push(e),this.#e=t}*entries(){yield*this.#e}*keys(){for(var[e]of this)yield e}*values(){for(var[,e]of this)yield e}}});var au=F((zb,ou)=>{"use strict";if(!globalThis.DOMException)try{let{MessageChannel:a}=require("worker_threads"),e=new a().port1,t=new ArrayBuffer;e.postMessage(t,[t,t])}catch(a){a.constructor.name==="DOMException"&&(globalThis.DOMException=a.constructor)}ou.exports=globalThis.DOMException});var Xn,Qh,Kb,Vo=te(()=>{"use strict";Xn=require("node:fs"),Qh=se(au(),1);jo();Wr();({stat:Kb}=Xn.promises)});var lu={};ne(lu,{toFormData:()=>im});function nm(a){let e=a.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!e)return;let t=e[2]||e[3]||"",n=t.slice(t.lastIndexOf("\\")+1);return n=n.replace(/%22/g,'"'),n=n.replace(/&#(\d{4});/g,(i,s)=>String.fromCharCode(s)),n}async function im(a,e){if(!/multipart/i.test(e))throw new TypeError("Failed to fetch");let t=e.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!t)throw new TypeError("no or bad content-type header, no multipart boundary");let n=new zo(t[1]||t[2]),i,s,u,f,d,c,p=[],_=new Jt,b=P=>{u+=A.decode(P,{stream:!0})},g=P=>{p.push(P)},y=()=>{let P=new yr(p,c,{type:d});_.append(f,P)},S=()=>{_.append(f,u)},A=new TextDecoder("utf-8");A.decode(),n.onPartBegin=function(){n.onPartData=b,n.onPartEnd=S,i="",s="",u="",f="",d="",c=null,p.length=0},n.onHeaderField=function(P){i+=A.decode(P,{stream:!0})},n.onHeaderValue=function(P){s+=A.decode(P,{stream:!0})},n.onHeaderEnd=function(){if(s+=A.decode(),i=i.toLowerCase(),i==="content-disposition"){let P=s.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);P&&(f=P[2]||P[3]||""),c=nm(s),c&&(n.onPartData=g,n.onPartEnd=y)}else i==="content-type"&&(d=s);s="",i=""};for await(let P of a)n.write(P);return n.end(),_}var Ze,ie,su,Ct,Yn,Qn,Jh,Hr,Zh,em,tm,rm,Zt,zo,uu=te(()=>{"use strict";Vo();Gn();Ze=0,ie={START_BOUNDARY:Ze++,HEADER_FIELD_START:Ze++,HEADER_FIELD:Ze++,HEADER_VALUE_START:Ze++,HEADER_VALUE:Ze++,HEADER_VALUE_ALMOST_DONE:Ze++,HEADERS_ALMOST_DONE:Ze++,PART_DATA_START:Ze++,PART_DATA:Ze++,END:Ze++},su=1,Ct={PART_BOUNDARY:su,LAST_BOUNDARY:su*=2},Yn=10,Qn=13,Jh=32,Hr=45,Zh=58,em=97,tm=122,rm=a=>a|32,Zt=()=>{},zo=class{constructor(e){this.index=0,this.flags=0,this.onHeaderEnd=Zt,this.onHeaderField=Zt,this.onHeadersEnd=Zt,this.onHeaderValue=Zt,this.onPartBegin=Zt,this.onPartData=Zt,this.onPartEnd=Zt,this.boundaryChars={},e=`\r
2909
- --`+e;let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n),this.boundaryChars[t[n]]=!0;this.boundary=t,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=ie.START_BOUNDARY}write(e){let t=0,n=e.length,i=this.index,{lookbehind:s,boundary:u,boundaryChars:f,index:d,state:c,flags:p}=this,_=this.boundary.length,b=_-1,g=e.length,y,S,A=K=>{this[K+"Mark"]=t},P=K=>{delete this[K+"Mark"]},L=(K,X,J,Ve)=>{(X===void 0||X!==J)&&this[K](Ve&&Ve.subarray(X,J))},Q=(K,X)=>{let J=K+"Mark";J in this&&(X?(L(K,this[J],t,e),delete this[J]):(L(K,this[J],e.length,e),this[J]=0))};for(t=0;t<n;t++)switch(y=e[t],c){case ie.START_BOUNDARY:if(d===u.length-2){if(y===Hr)p|=Ct.LAST_BOUNDARY;else if(y!==Qn)return;d++;break}else if(d-1===u.length-2){if(p&Ct.LAST_BOUNDARY&&y===Hr)c=ie.END,p=0;else if(!(p&Ct.LAST_BOUNDARY)&&y===Yn)d=0,L("onPartBegin"),c=ie.HEADER_FIELD_START;else return;break}y!==u[d+2]&&(d=-2),y===u[d+2]&&d++;break;case ie.HEADER_FIELD_START:c=ie.HEADER_FIELD,A("onHeaderField"),d=0;case ie.HEADER_FIELD:if(y===Qn){P("onHeaderField"),c=ie.HEADERS_ALMOST_DONE;break}if(d++,y===Hr)break;if(y===Zh){if(d===1)return;Q("onHeaderField",!0),c=ie.HEADER_VALUE_START;break}if(S=rm(y),S<em||S>tm)return;break;case ie.HEADER_VALUE_START:if(y===Jh)break;A("onHeaderValue"),c=ie.HEADER_VALUE;case ie.HEADER_VALUE:y===Qn&&(Q("onHeaderValue",!0),L("onHeaderEnd"),c=ie.HEADER_VALUE_ALMOST_DONE);break;case ie.HEADER_VALUE_ALMOST_DONE:if(y!==Yn)return;c=ie.HEADER_FIELD_START;break;case ie.HEADERS_ALMOST_DONE:if(y!==Yn)return;L("onHeadersEnd"),c=ie.PART_DATA_START;break;case ie.PART_DATA_START:c=ie.PART_DATA,A("onPartData");case ie.PART_DATA:if(i=d,d===0){for(t+=b;t<g&&!(e[t]in f);)t+=_;t-=b,y=e[t]}if(d<u.length)u[d]===y?(d===0&&Q("onPartData",!0),d++):d=0;else if(d===u.length)d++,y===Qn?p|=Ct.PART_BOUNDARY:y===Hr?p|=Ct.LAST_BOUNDARY:d=0;else if(d-1===u.length)if(p&Ct.PART_BOUNDARY){if(d=0,y===Yn){p&=~Ct.PART_BOUNDARY,L("onPartEnd"),L("onPartBegin"),c=ie.HEADER_FIELD_START;break}}else p&Ct.LAST_BOUNDARY&&y===Hr?(L("onPartEnd"),c=ie.END,p=0):d=0;if(d>0)s[d-1]=y;else if(i>0){let K=new Uint8Array(s.buffer,s.byteOffset,s.byteLength);L("onPartData",0,i,K),i=0,A("onPartData"),t--}break;case ie.END:break;default:throw new Error(`Unexpected state entered: ${c}`)}Q("onHeaderField"),Q("onHeaderValue"),Q("onPartData"),this.index=d,this.state=c,this.flags=p}end(){if(this.state===ie.HEADER_FIELD_START&&this.index===0||this.state===ie.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==ie.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}}});var Lu=F((By,fm)=>{fm.exports=Un("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")});var xu=F((My,pm)=>{pm.exports=Un("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GGeEG4WzwjnhvHBBuEm4KNwsXBIuC1eEq8I14bpwB+ON8KPwVngnvBc+CD8JH4WfhU/CZ+GL8FX4JnwX/mCCEWEUwYrgRPAiBBEmEaIIswhJhCxCEaGK0EToIhzMZMQ0ismKyYnJiymIaRJTFNMspiSmLKYipiqmJqYupoOJRsRRRCuiE9GLGEScRIwiziImEbOIRcQqYhOxi3gwsxHzKGYrZidmL+Yg5knMUcyzmJOYs5iLmKuYm5i7mA8mGZFGkaxITiQvUhBpEimKNIuURMoiFZGqSE2kLtLBZCPyKLIV2YnsRQ4iTyJHkWeRk8hZ5CJyFbmJ3EU+mGJEGUWxojhRvChBlEmUKMosShIli1JEqaI0UbooB1ONqKOoVlQnqhc1iDqJGkWdRU2iZlGLqFXUJmoX9WCaEW0UzYrmRPOiBdEm0aJos2hJtCxaEa2K1kTroh1MN6KPolvRnehe9CD6JHoUfRY9iZ5FL6JX0ZvoXfSDWYxYRrFYsTixeLEEsUxiiWKZxZLEksVSxFLF0sTSxbLcffoXUEsHCPayQzc8AwAACQYAAFBLAQItAxQACAAIAOoNNVmI63lZsQIAAM4IAAAlAAAAAAAAAAAAIAC2gQAAAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMS4xLjQ2L2NvbnRyb2wubHVhUEsBAi0DFAAIAAgAtL1FWI56jb0FAQAAEAIAACIAAAAAAAAAAAAgALaBBAMAAGRlYnVnYWRhcHRlci10ZXN0c18xLjEuNDYvZGF0YS5sdWFQSwECLQMUAAgACADBaztZ6Grud5wAAADZAAAAIwAAAAAAAAAAACAAtoFZBAAAZGVidWdhZGFwdGVyLXRlc3RzXzEuMS40Ni9pbmZvLmpzb25QSwECLQMUAAgACAAlra1WUqj09c4AAAAwAQAAMwAAAAAAAAAAACAAtoFGBQAAZGVidWdhZGFwdGVyLXRlc3RzXzEuMS40Ni9zY2VuYXJpb3MvcnVuL2NvbnRyb2wubHVhUEsBAi0DFAAIAAgAaYkwVpSORlA+AAAAPgAAADkAAAAAAAAAAAAgALaBdQYAAGRlYnVnYWRhcHRlci10ZXN0c18xLjEuNDYvc2NlbmFyaW9zL3Rlcm1pbmF0ZS9jb250cm9sLmx1YVBLAQItAxQACAAIAE2Cilj0wecTJwEAAHIEAAA1AAAAAAAAAAAAIAC2gRoHAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMS4xLjQ2L3NjZW5hcmlvcy90aHJvdy9jb250cm9sLmx1YVBLAQItAxQACAAIAA8TfVf2skM3PAMAAAkGAAAmAAAAAAAAAAAAIAC2gaQIAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMS4xLjQ2L3NldHRpbmdzLmx1YVBLBQYAAAAABwAHAHMCAAA0DAAAAAA=")});var ai=F(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.Event=Bt.Response=Bt.Message=void 0;var Jr=class{constructor(e){this.seq=0,this.type=e}};Bt.Message=Jr;var ta=class extends Jr{constructor(e,t){super("response"),this.request_seq=e.seq,this.command=e.command,t?(this.success=!1,this.message=t):this.success=!0}};Bt.Response=ta;var ra=class extends Jr{constructor(e,t){super("event"),this.event=e,t&&(this.body=t)}};Bt.Event=ra});var ku=F(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.ProtocolServer=void 0;var gm=require("events"),Zr=ai(),na=class{get event(){return this._event||(this._event=(e,t)=>{this._listener=e,this._this=t;let n;return n={dispose:()=>{this._listener=void 0,this._this=void 0}},n}),this._event}fire(e){if(this._listener)try{this._listener.call(this._this,e)}catch{}}hasListener(){return!!this._listener}dispose(){this._listener=void 0,this._this=void 0}},si=class a extends gm.EventEmitter{constructor(){super(),this._sendMessage=new na,this._sequence=1,this._pendingRequests=new Map,this.onDidSendMessage=this._sendMessage.event}dispose(){}handleMessage(e){if(e.type==="request")this.dispatchRequest(e);else if(e.type==="response"){let t=e,n=this._pendingRequests.get(t.request_seq);n&&(this._pendingRequests.delete(t.request_seq),n(t))}}_isRunningInline(){return this._sendMessage&&this._sendMessage.hasListener()}start(e,t){this._writableStream=t,this._rawData=Buffer.alloc(0),e.on("data",n=>this._handleData(n)),e.on("close",()=>{this._emitEvent(new Zr.Event("close"))}),e.on("error",n=>{this._emitEvent(new Zr.Event("error","inStream error: "+(n&&n.message)))}),t.on("error",n=>{this._emitEvent(new Zr.Event("error","outStream error: "+(n&&n.message)))}),e.resume()}stop(){this._writableStream&&this._writableStream.end()}sendEvent(e){this._send("event",e)}sendResponse(e){e.seq>0?console.error(`attempt to send more than one response for command ${e.command}`):this._send("response",e)}sendRequest(e,t,n,i){let s={command:e};if(t&&Object.keys(t).length>0&&(s.arguments=t),this._send("request",s),i){this._pendingRequests.set(s.seq,i);let u=setTimeout(()=>{clearTimeout(u);let f=this._pendingRequests.get(s.seq);f&&(this._pendingRequests.delete(s.seq),f(new Zr.Response(s,"timeout")))},n)}}dispatchRequest(e){}_emitEvent(e){this.emit(e.event,e)}_send(e,t){if(t.type=e,t.seq=this._sequence++,this._writableStream){let n=JSON.stringify(t);this._writableStream.write(`Content-Length: ${Buffer.byteLength(n,"utf8")}\r
2982
+ `)),n.push(`--${t}--`),new e(n,{type:"multipart/form-data; boundary="+t})}var Vr,Gh,Yh,Zl,Xh,eu,jo,Qt,Jt,Kn=te(()=>{"use strict";Wr();Uo();({toStringTag:Vr,iterator:Gh,hasInstance:Yh}=Symbol),Zl=Math.random,Xh="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),eu=(a,e,t)=>(a+="",/^(Blob|File)$/.test(e&&e[Vr])?[(t=t!==void 0?t+"":e[Vr]=="File"?e.name:"blob",a),e.name!==t||e[Vr]=="blob"?new yr([e],t,e):e]:[a,e+""]),jo=(a,e)=>(e?a:a.replace(/\r?\n|\r/g,`\r
2983
+ `)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Qt=(a,e,t)=>{if(e.length<t)throw new TypeError(`Failed to execute '${a}' on 'FormData': ${t} arguments required, but only ${e.length} present.`)},Jt=class{#e=[];constructor(...e){if(e.length)throw new TypeError("Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.")}get[Vr](){return"FormData"}[Gh](){return this.entries()}static[Yh](e){return e&&typeof e=="object"&&e[Vr]==="FormData"&&!Xh.some(t=>typeof e[t]!="function")}append(...e){Qt("append",arguments,2),this.#e.push(eu(...e))}delete(e){Qt("delete",arguments,1),e+="",this.#e=this.#e.filter(([t])=>t!==e)}get(e){Qt("get",arguments,1),e+="";for(var t=this.#e,n=t.length,i=0;i<n;i++)if(t[i][0]===e)return t[i][1];return null}getAll(e,t){return Qt("getAll",arguments,1),t=[],e+="",this.#e.forEach(n=>n[0]===e&&t.push(n[1])),t}has(e){return Qt("has",arguments,1),e+="",this.#e.some(t=>t[0]===e)}forEach(e,t){Qt("forEach",arguments,1);for(var[n,i]of this)e.call(t,i,n,this)}set(...e){Qt("set",arguments,2);var t=[],n=!0;e=eu(...e),this.#e.forEach(i=>{i[0]===e[0]?n&&(n=!t.push(e)):t.push(i)}),n&&t.push(e),this.#e=t}*entries(){yield*this.#e}*keys(){for(var[e]of this)yield e}*values(){for(var[,e]of this)yield e}}});var au=F((zb,ou)=>{"use strict";if(!globalThis.DOMException)try{let{MessageChannel:a}=require("worker_threads"),e=new a().port1,t=new ArrayBuffer;e.postMessage(t,[t,t])}catch(a){a.constructor.name==="DOMException"&&(globalThis.DOMException=a.constructor)}ou.exports=globalThis.DOMException});var Yn,Qh,Gb,Vo=te(()=>{"use strict";Yn=require("node:fs"),Qh=se(au(),1);Uo();Wr();({stat:Gb}=Yn.promises)});var lu={};ne(lu,{toFormData:()=>im});function nm(a){let e=a.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!e)return;let t=e[2]||e[3]||"",n=t.slice(t.lastIndexOf("\\")+1);return n=n.replace(/%22/g,'"'),n=n.replace(/&#(\d{4});/g,(i,s)=>String.fromCharCode(s)),n}async function im(a,e){if(!/multipart/i.test(e))throw new TypeError("Failed to fetch");let t=e.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!t)throw new TypeError("no or bad content-type header, no multipart boundary");let n=new zo(t[1]||t[2]),i,s,u,f,d,c,p=[],_=new Jt,b=E=>{u+=A.decode(E,{stream:!0})},g=E=>{p.push(E)},y=()=>{let E=new yr(p,c,{type:d});_.append(f,E)},S=()=>{_.append(f,u)},A=new TextDecoder("utf-8");A.decode(),n.onPartBegin=function(){n.onPartData=b,n.onPartEnd=S,i="",s="",u="",f="",d="",c=null,p.length=0},n.onHeaderField=function(E){i+=A.decode(E,{stream:!0})},n.onHeaderValue=function(E){s+=A.decode(E,{stream:!0})},n.onHeaderEnd=function(){if(s+=A.decode(),i=i.toLowerCase(),i==="content-disposition"){let E=s.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);E&&(f=E[2]||E[3]||""),c=nm(s),c&&(n.onPartData=g,n.onPartEnd=y)}else i==="content-type"&&(d=s);s="",i=""};for await(let E of a)n.write(E);return n.end(),_}var Ze,ie,su,It,Xn,Qn,Jh,Hr,Zh,em,tm,rm,Zt,zo,uu=te(()=>{"use strict";Vo();Kn();Ze=0,ie={START_BOUNDARY:Ze++,HEADER_FIELD_START:Ze++,HEADER_FIELD:Ze++,HEADER_VALUE_START:Ze++,HEADER_VALUE:Ze++,HEADER_VALUE_ALMOST_DONE:Ze++,HEADERS_ALMOST_DONE:Ze++,PART_DATA_START:Ze++,PART_DATA:Ze++,END:Ze++},su=1,It={PART_BOUNDARY:su,LAST_BOUNDARY:su*=2},Xn=10,Qn=13,Jh=32,Hr=45,Zh=58,em=97,tm=122,rm=a=>a|32,Zt=()=>{},zo=class{constructor(e){this.index=0,this.flags=0,this.onHeaderEnd=Zt,this.onHeaderField=Zt,this.onHeadersEnd=Zt,this.onHeaderValue=Zt,this.onPartBegin=Zt,this.onPartData=Zt,this.onPartEnd=Zt,this.boundaryChars={},e=`\r
2984
+ --`+e;let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n),this.boundaryChars[t[n]]=!0;this.boundary=t,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=ie.START_BOUNDARY}write(e){let t=0,n=e.length,i=this.index,{lookbehind:s,boundary:u,boundaryChars:f,index:d,state:c,flags:p}=this,_=this.boundary.length,b=_-1,g=e.length,y,S,A=G=>{this[G+"Mark"]=t},E=G=>{delete this[G+"Mark"]},L=(G,Y,J,Ve)=>{(Y===void 0||Y!==J)&&this[G](Ve&&Ve.subarray(Y,J))},Q=(G,Y)=>{let J=G+"Mark";J in this&&(Y?(L(G,this[J],t,e),delete this[J]):(L(G,this[J],e.length,e),this[J]=0))};for(t=0;t<n;t++)switch(y=e[t],c){case ie.START_BOUNDARY:if(d===u.length-2){if(y===Hr)p|=It.LAST_BOUNDARY;else if(y!==Qn)return;d++;break}else if(d-1===u.length-2){if(p&It.LAST_BOUNDARY&&y===Hr)c=ie.END,p=0;else if(!(p&It.LAST_BOUNDARY)&&y===Xn)d=0,L("onPartBegin"),c=ie.HEADER_FIELD_START;else return;break}y!==u[d+2]&&(d=-2),y===u[d+2]&&d++;break;case ie.HEADER_FIELD_START:c=ie.HEADER_FIELD,A("onHeaderField"),d=0;case ie.HEADER_FIELD:if(y===Qn){E("onHeaderField"),c=ie.HEADERS_ALMOST_DONE;break}if(d++,y===Hr)break;if(y===Zh){if(d===1)return;Q("onHeaderField",!0),c=ie.HEADER_VALUE_START;break}if(S=rm(y),S<em||S>tm)return;break;case ie.HEADER_VALUE_START:if(y===Jh)break;A("onHeaderValue"),c=ie.HEADER_VALUE;case ie.HEADER_VALUE:y===Qn&&(Q("onHeaderValue",!0),L("onHeaderEnd"),c=ie.HEADER_VALUE_ALMOST_DONE);break;case ie.HEADER_VALUE_ALMOST_DONE:if(y!==Xn)return;c=ie.HEADER_FIELD_START;break;case ie.HEADERS_ALMOST_DONE:if(y!==Xn)return;L("onHeadersEnd"),c=ie.PART_DATA_START;break;case ie.PART_DATA_START:c=ie.PART_DATA,A("onPartData");case ie.PART_DATA:if(i=d,d===0){for(t+=b;t<g&&!(e[t]in f);)t+=_;t-=b,y=e[t]}if(d<u.length)u[d]===y?(d===0&&Q("onPartData",!0),d++):d=0;else if(d===u.length)d++,y===Qn?p|=It.PART_BOUNDARY:y===Hr?p|=It.LAST_BOUNDARY:d=0;else if(d-1===u.length)if(p&It.PART_BOUNDARY){if(d=0,y===Xn){p&=~It.PART_BOUNDARY,L("onPartEnd"),L("onPartBegin"),c=ie.HEADER_FIELD_START;break}}else p&It.LAST_BOUNDARY&&y===Hr?(L("onPartEnd"),c=ie.END,p=0):d=0;if(d>0)s[d-1]=y;else if(i>0){let G=new Uint8Array(s.buffer,s.byteOffset,s.byteLength);L("onPartData",0,i,G),i=0,A("onPartData"),t--}break;case ie.END:break;default:throw new Error(`Unexpected state entered: ${c}`)}Q("onHeaderField"),Q("onHeaderValue"),Q("onPartData"),this.index=d,this.state=c,this.flags=p}end(){if(this.state===ie.HEADER_FIELD_START&&this.index===0||this.state===ie.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==ie.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}}});var Lu=F((By,fm)=>{fm.exports=jn("UEsDBBQACAAIAGiUsVgAAAAAAAAAAAAAAAAeAAAAZGVidWdhZGFwdGVyXzIuMC4wL2NvbnRyb2wubHVhdc1BCsIwEAXQfSB3GLpKF9aiC+tSMa49QGCodqqBktQhgRxfmopUwc3AwP/v2x6cD6AQT3SN90PXjoEYPAPihX1vB+ISwoOcFAAjWxdUYZI+m3TcmbSvTdLapKY2qdkW5RTqJqjKV5VSkOukkML2C/EDMj2jZVIFYi608z7iepyjq5t3gf1QDbGdeaYQ2b3dL3WzYBeZ/xv5/V14AVBLBwjEcU+QnQAAABIBAABQSwMEFAAIAAgA4ZS/WAAAAAAAAAAAAAAAACEAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvZGF0YXN0cmluZy5sdWHdWN1v2zYQfw+Q/+GAvsSz5Eq24/hhQoe2MbCHDcO6dg9eVlAyHXNVSIekDQdp+rcPxw9RkmXno8AepoeYvDvd7+54dzwljufz05OvkDOt4Ct87C+ZVBrArEtilrjJ7zRFgbd3mn5ODcksh2E5CstxWJ6H5QSXpyf92DzuZ29dbfqd/Gct0TOAC+tNkiQJgF9fzJxnANadZGcfQ3LPs5YGLE09wDSAXcwCmA1YmiYezK12LwGbOIBp8Gw2q4GNHJjFaII9A9eADZ1nqYujWc8cHEqPPZjRfBDsMdz/PEF+GLowDhPrGq5HM+camnZeeYbGP8WzTicN2GhoAcaJRfNnZtBQehLA0meDheXpyenJJyJ/5hpyougCBIePf8ziaQR0pylf0AUshYTlpixhNMyZBsa1AsZhgsWOzJsBaonjqyv8LUVBStCF4AXRkIEmeUkHduu5SkvGryFzi4psNHrqAHcVq1gRGVi4q1hqkweO2uSekTM9GkJmfysi4QtPG+CmYggZ6KLSXqoVW+qKY7eeKZtM6Zie/fny10+QAWelDVD8U1ESpeA90eRDw/NAgQzuH5w4SEoWCgjHmMNSihv0EpQmUqMowcNY0N3AKl8TSbyEVR6oRg7V0GsqLUNSvZHc02BLyg3t5HC60z/j+97a5YYXmgkOv1OysNlzprSMDEgPjcdEtrIFHg2epJGwdvRASEjqUoreQgYF/AjJbpoAnlGKQpZyaSnDQJlZyqhGmRrKuEZ5ZyjnSJl4o9jSYmWQgl5Rbqn4OKcL60U/tRxaKhpkrLFbUuKRE744KyIY/n02jRW97UEMaeU8Plg3LEsjRW/jFBYicPBxWoQ8szl1tiVlBJNeZDW3Y9ZnvQiS3WjW6wU9FNM3bOMYqCrImsJfNcfY0mJlGBPfQtB3Z0KaWD1H5C/r8sPJo/LvG/pHbTtdqNFh65uity7cKGj+hIoYhCyDrJZyvkgKwbdUal8mWgDxDaYQXBPGcalXFCgvBDa0Wqrb6kBDu2rDqdkSiU1Py70C+FMyTV0FbEnZq+f0WtIl20VgRqUbor5EtnKrJlELnsv7ZkbG8XyempEKO2sreKYh1jAxUWvKzF2/r25oJ7S6Pmsm4OkVSS15vdWGky4DJzgBGRZWB7q9/PfhR0fh6UH45BB8OuzEd1f0vgHjowYsDxtwcciAaacB/tret+D8uAXTgxaMDlgwHHd1KoSaHIcqng01SmpVapdYLPpuTV2pzK8aXd1dZkbR/JXqp1d4G5jMxcbnK8Q0PBm6YADtRZVpPd/4sK0aZhbk4kmURPGk0WS7ELHKOvAsVLIbLSuUqsW5enMDzZnq7TeoWheArN4TbIvCT6dcUvJlLczslMG9Ve1eWbKScnJDS8qv9cqFy3Yez7JEMx7xzc26JIxHMJvhcCHAby9NM7eitmXNrywT8rVqqijEzbqku6AkEOpq8rU/0fsQWKsbSsZrCWcUr4iiOy0J3lRJije64AtmOiV+OSU4ja2YLsSGa0sZQwaluP6FKkWua+qMGjW/wjuNcRByQWVUU2fulxXTdlGK6/DqffuetdbWghuS2wSZ7taSKsVErVRd1j6cnjycntjBtjFiLYgmXWPWsWtEaSk2+gUjlk2zMwcbsV6r9vjmJkfIxoji86CMWOPa3FNjb2nWr96pZnSxwXzG+Tq8FG1JGae9Rm1Y0cgo6Lq8q8k2bL4voO9pvrn+TQotClEOPoiNLOjbqsIgFNtLgt3Sdjjsx62oxzJfV2O9raoBFs9jB2PfdW25mgcbIqiBQR/S0I/x+p2CpIrKLV1g8RgNWmDz31KuoZCUmO+HSsj+2yZNXqej18NJNZmYPmkmFyznHnzLoH2l5etBVZSVPwfytWqpbdXDQ6pXTL/7bu3jQ9pD33mS7kbK5+uIHUj2djZmnWn1eAE0mseb2lXw5EKYX72p1YLqTPcgrbzbjfTDyKSNXL7T1DbwDF65N57Wj8LxBBX+YHxcOSvDSbaGi7rC5sXod8fO8VnF25xj8rVq1K9vqu2ajJj/bKx/Ey2Lrq+hPanFoW+shhQ99OXmpL4ZqWUr2XFk+gdfwB4ddX6LPtaMwmD5jO4Xik3NX+VrN47dm9EBMmPwQ+trtlVu/7tQvyh+Pg3bUQ35/til1X0SdY1d0XdFWZWXGSO7mt7bxnjboqA2369q//n6F1BLBwhgUy/9aAYAAFQYAABQSwMEFAAIAAgARBrSWAAAAAAAAAAAAAAAACQAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvZGVidWctY29udHJvbC5sdWFNjc0KAiEUhfcDvsPFlULYrGraBvYUgpjeCSnumD/h48dIizYHvsN3OBnfLWYU3NqA9/ZwwaWK2drjP6pXc1yyiU3F55iq2sjiB6mKgGskLGpQ2fsa/fMAayNf40YgJJsAAFKOVAU3Xd9Mv55Nv8yma236Mpu+nPhPG69q5L5ECvILUEsHCNoZ/nWCAAAAowAAAFBLAwQUAAgACADXrU9ZAAAAAAAAAAAAAAAAIwAAAGRlYnVnYWRhcHRlcl8yLjAuMC9kZWJ1Z2FkYXB0ZXIubHVhtVdti+M2EP4eyH8Y/KVJcdz7dtvS9LrX3YOD9lgo7Jem+BRrbIsokivJ2YRl77eXkWTHzibplVICfpHmmRc9M+OJKCHPH4wuhUQDrkY1nQBIXT0nSQrJrXO4bRxycBoM/tUKg8Bx3VaMs8ahAaEgScEWRjQu22qeK7bFFBJ4Eq6GJmiGWusNMGmQ8QMIZR2TEnnyQsYMutao6QQVn06mE1ECZ471viwW4d06ViEUEpmx0LBiwyrMpGYcOazRPSEqIFs2BavhCQlga2BQ6IZswq8tA4OVsM4cwGkdAi2YpFVYhrCyCl0nNJsH+4uf3aFBuKP92xD2CHt3C0u6Z3l+KiPKKEDRxEjjig83xky/xQJcLSwICwwqqddMUiCuRtjZQnME3DtUVmgFBVNQoSNShIPS6G303l/Jb/K6kMzakdvww+g1+91h0whVZQ/tWopiOgkxjeOAJeT3nx5PogNt4PmF2Fm3Draiqh3UbIewJiI4lkIh7ykvtQGLEgsndugTwLRbVA62muN0ck7/Ek6P81JU2S9SoHIflUNTsgIvBXl3+5COtx6ZEWztc+YEwoqNnU7GHmR5zlkDS3h+iYQRXrcWSoGSW7DoYH3o6HIaCq1KUbUGPY2eHGBdOJeC8Ziw7fUOj2uttUSmvCWh4O72GzvYXnybyZYNoUr7yjsHK7RyRktCUJoKB1yjBaUjjwS0x1odaqUtqat3vV5UdIpgsJGsEKqCz1JXn4eQDWKjJR+hnqgmLLo0iEc4+kCfhJRgHV0LJiVoIyqhmHyt2bRKCVW9N8g270C12zUaKKlXoSoOnoUai41PwYa1ltIPpFbVIiKhCDl4ynUg71UeHnd8BXRp2TDDtmTN0VH8aJ0RqkqZOvw03PelekYi1F3ZqsJRfW/RVDhzOvUA34bI/U0KO/K+YcLYmd8C7vsYgNN/bP6EJezoddhbujYVeveye+o2QueGZXzolkOuxqbYLTZGKBL1936RnKFFuh8Nupoq3x4NzpI8H3458vy7KEMpmMx7y8I2zBX1VWQnNIbuunK+iu2lxmDcMdkyh1exndCJy6w7mctILzGG2diYruI6oVMoNah/AJJIB+ujVLvYz/tmf//pEZaghCSpk1zv4ooRZpH5kJ9j2bSPJ8vzpl3Pz6jzDTQ7pkaXAKP18+qDTHrkOCzML9gYsNlz1j1cNzCIIui/LkyHPI9zy4VGkcV+CV+WUDJpsZ9tLrMndc+4r+MrRYTWHVl+3Sb6UslzoRSarmUM1g1utcPQP/rwW0Vuz3bzwZSyWCw+aFOEz9ndLYQPb5gNS4O2BtyhObhaqPgFa+Jg0be2kzOKuDBq+eyaJav9/YfV/v3b1f77m+Rong8mNqEGH8UlJEkcti4xMJDuzh5eKaEz+3hc+U1zTPpuGg2g2mWj8RTGtTFLRtNxGCXRIPcNnJAJZNnIdEq1Fy9JoZXVEpN50N2zwZxjRTymcwf1ZrW/v1/tb96s9jdvO/TJTEhL/+s0/VXzNJwZlc8MewAoLfZOCwWMc+FTyIWpOMzIqR9q2gbIHUrj6C+NyMfxy393/dijVe5EsekVM8WhoSGs78bWUd9gRreKdzppBrH/mm5P9clfo69l/z/wf3OR/+FcEP+MjM/9b1BLBwgUv5BCyQQAAA8OAABQSwMEFAAIAAgA4ZS/WAAAAAAAAAAAAAAAAB8AAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvZGlzcGF0Y2gubHVh5VhLb9w2EL4b2P8wEHrQIhKL9hhAcIy4AQo0OTRFLwtH4EqUlrCW3JKUHSNIf3vBN/XwI6iLGu3BXmnIeX3zDUVyczbwBg+gDoLgVkIFgvwxUkHyrK5bsh973OKTIqKuv3dz0DDibLs52zhVqQRlPVTuIYiPWDWHIEbmNWoZ21DZ3yDsiaKs416O3LtWK8vyjbo7EfhlxL+SI1fEawnzBhXkejy3r9uqyhTeDyQDzFoQ+LYnyo0VWV0LfJttt8CFUw/GGjwMBgZj1OiaR6QHkqwbQU9Kp2ce4sAJU6FxNL9RTNgNVFD/9OF3L9HPUAGjg0+vGbCUcKkzv7Coo0sqTxY4h5B7hwq+fI3W67rFAQY94MWUMSKczOuiKHZPcf7ESKIQ5P5xc0Y7D5I6ELY5A6CdQwMdeVszfCTwZwVZSqMsTAaPK27bmjJFRIebJe0yQGhutQhRbLUlMkjykMWJ/yLBymqzdnNm/nkUupE1inIGVL7HlL09jOw6N3PtOIUKfoSyBMaBEdKC4tAcSHMNnr5cpLpaM7DXN4k3dnvASr/dHuhAQImRQMttNs6b6wdnO6dF9jHb2hm0s8MRUzAGoTJy5I2buVoIr+AHK4igAewFwddOrIEIP4KoUTBnsoLsiCnL7kOrwcz25Vs8DBavskybB6gEzoY7GEivFQU/wi1VB8qA3BCmZAG95kyjOUckaJX9qICzeuC4dQbb0Sw3Tlj4RiSfqVTS9Ks6EBCcK+CdeZYKN9faOeMwcNYTYcQ6GWh8gVyqjCvzlxN2g0w0XHgX2rYem9BiG+AoyxJMmtj3RSQSM8kI0lOpiCAtHHkrbdOfsMBHM9U0jFtNPxjX3cKSpppZh6IqQggu2N3mLEwKfaunXgxD7q0XCKGt69RZuRIOdWFRNDqhk3QaZlVzyygKI3IbSOtpe+StyadyH4I8sZh9mjV5jl5tv/OkNtF5dY15cLPzeVxNGA920U49LBJOuB1JHlrALYPRfu710tXhmwsMI1N0AM6Io5c0Df7cddciR9895wPBbI0LHWXtkghlCUrcuZp1VEiFEHIMWUdlsoAbpzYnh5U3eiDMgSX4qIvYwYlLSfcDiR7+SxzUn8MHaTibv4BvRtIVvk4W5Q4b+jrQLTt1KR1T7iEpyBNpaEcbnV3KJp+s/z798xRNZIYR68vXe97mLrYihFJAspCFKleL3ccqVYvH2v1RcqbbTkewxbYFIRfX9Fvuaew3mAl/d9HgVfJ59xpPYeEkywUbV+Cbcutedn0rt+xJIWWClVCbQq93nC+FYL+ZyHIf4D0kC/FXlT8rIXWgsrYvf4Np6fkLonHcKHpDnHm58/6vnomc1h76vxLUbgk7YdJPmKgFP79Akr7TgeUuvDWcUhYVtFC4T7gkTwNV76yyNzIlNnoGZtMCFO5jSM+5lr50us5zfyJt7YYlnA2/7Cy5rl57FnyNtd1T1lLWy3DyN4r6yGmOKEQFDkqzexqwIl7Je7F8nHzn04HuPNjwAz5sJz7X8iVFtZvcYRKPpt0ESx//zsJcQbc8iPrmmExd4hn2PB6/WeonLKXuUanI6WQfNBi4EVxKaDhT5LMq5S2158z9HRyw8QhU6QY2J8PLC7g5Bpxtgdh43BNxHotiLNbez2Su6/DVyTVlUolo3MLfDASLc68ILenwOKiwP0zK4eKAuePp4mLHva+1uvVEfXQmcuM9Fi858z5+p6NnzVs8uTlLenKquNptps/Kcrd7g6WOObdULdyPT2772qEQJFdXi7ueLMkwKyDNMeWdv8i0E4sIG1SzEhcrVQz7f2New2O6fLbfn9mZm7E3gYW5DUy2/zNsVkJcOyLEK660xPoWaaXycxp6H+eOZstR6/g8fsTWuCUTbkX0ovq/SzWzli/YIidseSBqX5AllaZlNtffsUenE0Lhn1xMuV5MmRYzLI6OMn7WX1BLBwgaiVDGswUAAOoXAABQSwMEFAAIAAgA4ZS/WAAAAAAAAAAAAAAAAB8AAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvZW51bXV0aWwubHVhTVBBboMwELwj8YdRTiBBHhCV0EuvPaFeqqpyYEkt3DUyC20U5e8VrFNFPtiemZ3x2PnWOIzGhgmV7mniNvDz5fUNFdi6NEmTsiwx/ZgR8kUY6DLBcIfFuJkmeIaBmJOjTfh8JqZgWzR6HU0w35BaJU+TBMvnojk+smOg3v7WUPKR6a0TCjX6mbOBLoc4vhh3aPLDyXtHhnUgkMyBY0xTqPJY3xv1M7diPcPyQkEyKTS10Ig8TQDbg71A1p6MaEjcrZy6iKDC9bYCvQ8YigWW9esyydH5lfk3Umv4EE/ZUCz5Zq4yQOR9+UCFTB+zSne7fL8fVBCz43ZvKGmyIeuK2FVboYr1bn9QSwcIBa7KzAcBAADcAQAAUEsDBBQACAAIAEQa0lgAAAAAAAAAAAAAAAAfAAAAZGVidWdhZGFwdGVyXzIuMC4wL2V2YWx1YXRlLmx1Ye1b3Y8btxF/N+D/gdgg8ApebX3pmxrZSVM3MJC2QRDk5XC4o7SzEqMVKZNcydfz5W8vhl9L7sd92E6Qtnm5Wy3JmeHMcPgjZ7YRa9qQn5XgZEkkvG2ZhDy7vKxg1W5oRQ8a5OXln7BD2bQ0mz190pghFVMHqtfbO4f5TunQI5WMrhpQd44NvXp8sRdZ2v/h5QY047Xw70v3O263T1EH8yL0UP0eqt9jA7o9HGnTQkzFvYrp9HupYS8t6RpWdL0LncIb30dpyTjO1D6E16pdhZelalehYZO0bKImjXokS/s/vGz5wQpgXpf2Z2hN2pKWteBrqkOb/Rlarw+G0/UhMNqA3oOmXoj4p+9yWNMGNW/++5fv/Nt3yWuVklMj5BpBK7I0/wIHxit4R5ad85X21dMnvgvwI1mSy9f//Mm/wWeyJJw12Gs+n3+1bqhS5G9osa+tp5av0bJUB+Z/+xrfkCW5uXWjfmR7qMgRpGKCE1GTKzOhq5K8qcnVhu6hXEugGi4PUtSsAZnPrghThB4pa1DYgjBNTgyVMJ/PV0BaBRXRguyBqlYC0Vsg8A7WrUYWmu3B8KmvSvLjFswLSYTEqRjCVQUVoYpQbijSqmI4kjakZlJpIkG3khPjtAWpRdOIE1Rkde1lf6YIF3JPG9dVWf0cqKR7UpO65WskaN86at+19Hs3wfdGp1HbSogGaNq/LEuvVE/PzKQyIuT17OkTQpyP0T06A/BjiY/YwGr7Vm+B429CkLTxz0gQ2+J8F71z1BpxL2ni1o2X4da26VJpcfA93QR04RZZLkGZJmgUJF04a4p4OsCrp0/Mn9jhgofbIHkJ/Ljov7T9awZNRS4v141QUEtUQN1ylCs2ELq6WzGR1bD3m+oVYVzDBuT7mjYKOkvZXrRR4jshdm/4K0tiYMoRYQdmhCNtsF8O/Fg4xkVH2qgimGuUoDcH7NEaVqfJtJcdN28W4ueIjTSYAnhVeAKGgwti2WCdv+bHrOicyWpEe1Wmr9VWSN35tW90SvJBPeLaMB5LnevCkAiys9rR7Dw6cqTsSxN2XvPjy8w3Gj+yj0GZlrE1mm0K0Y+7leOYBV05ZfX4ugFkSXL/KCTJSC1kNiNlSTJirFFZQp1QjYKI+qOJWutm+MPRGJkuqyNHfTwPQ73bKSpQa8lWkHc0Cy1bmCWc/Q9nkNxaBLcGtAqTgu+B68/Vy2y2qDF26oR/Nut7470utkvcKPIuyq+9a/l9L3Kr3azzCrIRhG6BVoTyijRCHOyuh0jExN+gzx06QoaNmVFoCHKpm5FVq8nlt2RNOWp0DWTTiBVtiODNNTLYtYcijN0CkYDx2/aBTk9Dzt+mfDGGJXq/y+aBioKmznqNwWTd8Nhbqu7HfE70limyZ5utJisgFPeSf61+hrU2CtRbKU5EcLKilZusitToF5tq12tQqpCg2ga3HYtFYv/qjGRXvh0xJbklNCp1X0fjC28+JzXjFdmKE6kADuQEhEoEHrUDFwcJygAYxtdNW4EiFdSMI0blcAr+pYwecEfDFr2FfTL/+dxSZMqh0oYdQZFG8A1IoreU99nlq2uyAiRm5wrVrOhZBMKkECOhXdYNUAnWqWtEkQZra2G9EEc4j3M26huIkSV5EXNx0dNvjVH49ENEXSuITHDasgYIhglSidhkjoM7rriTSs6KrM5mcT9W2059k3sKqHGyNH1KfE77sNp1WDpEWoKLRm+4BolQb0iYuFkgWTInZ/3WlQS6S18m6yMGOJGFTkA2QhO0A6r+RK9JezCPSqNdTkxvRauNB6KhT1vwmBb3tBNVZEsPB+Ah1kXED1Ks6Kq5JqLV6EwVYbogSqSRzTglOkXnLugOCNqMD+CRKfbTFCwk5h5VRE8NzGjweazBpAervab7RnC29RDGifB84F449/UW1juMsm4U1f0t0ctylg503pyAk8Q5lTv6jgwKe0s8wPx1R9yubXIJ+GG4+RXhsOzP5LmZRMFmA4/mQpsxdiMwRuhr3vaje1iodpWfFWcz8suSZHk26u6uL66S3WgH4nVRdFPE861sneD9AQNxhvINfWPoP7Xnm+x5kQxJWO+7g7+BGHeIJHyEAGSVjkFoEE0GHvR4wzqJciT9sZbtrJWcUz9E01P75HyOgQx1eaLSnLST/SIKFR0aOd9dfAIEZ98fYwjH4TSG4opjjOMqwZ+ZECtOeCeiMY4aJCckwjFmz1xqAtAJOYmyPinCmhD0Cgdd/Tag62PQ1nxOqNawP2izeYAunGj0OpWCKsU2BsdixyBuYdDxCbdA23KghgvVuCG2qqVNk0TXTsTz3QXeXg11epcz/25gX4eqzv5AVX+gqv9pVDXqzQlQchfPj9xPf78QqZsUGuhXQ0QRm6EcIYHjVNN1jvbJ8bhJ/gvA1KeGUb5feqfzAbaPEl5OqoG+x3X+qVzjsRAuCkgWtHXbqiNlrvQ9/tmPXMcn98LfiJZrqH4wNzALxG3nF/FdPPcBIb2C9zEoiRZj1+z9W3bbvhZcwzudXOdG9/vdtu3xZQRFTTqKs+Z9knQRR5AmcYb5AifdIpIuup5fBJEKJ8eik6PomLu3heG4MDemizj58qpwEhTTGn1vabz6bYR8tQhJj9nCn48L4zIhmzCx8efDNIZnHHGzbNL8RjgZuJt4m4g0WQ6XyBqCN3+PBhKeKUK7XAe+KYiNXoh1NNmaPB+ha82O4GGVC2txYiu68xq/IXChTrR+xY1GLrNin5+l2YW7DvpvqiiS9WNYsrkb1oM4tBFa2CaXGBrHTD1w0Q8bg4A3GhadbXonfyuXvRUYEA0PkX7HwarXRgdZ74KkH6H8iV3k/v3jw9QzaqC+fty/xcJ3XCx6zi/k+OnTMY0LAfKb26JLMU7kGGcRW6uo9bblOyVR2Xm2zD9Xsy5V4wMupmqQdBZln+vCZYUxNOXP3NbxrCyjQFwE6gXJdFYYsWduiqj22uo8pXXf+G7LS6h0MYIfacOqSI6w/WH4MDtBbMIoK20CIWYonJaj5eR69XskhjS7JVU6KQaIgtyRNr6+w4phTvIhu496dmUfwTpxbjeMsby7exGsdCh8fqUsy9m9Z2BLfa97tSm5VfB8fn7+FR1NwV9c9In0EtB7ez+x12XckIS0ZIRxgPhNPpuIUz5/lszW1Ozk3ZxDfyF7Wvp/0U80z0QlrjkiFPwxrzEwmH6hem3FeJVn/Q0/K6agQK/aQmk5AsP65RZ3FlmMQL9XCc1eWUGaC0ZA2ocvtqeR+JArLYtp+JKiFUcvXsjKVTvF71j1zh90Qt2MzXWaQjXDMss/X93cznxJRXBPjFaxX+Jvs+fcnN8Othzkf+44IpbPbrK01Urinp6fDSsnbvq1CR2/iwfwu30sv9tpfmVZDjjO59jBXLeQtdjvKVGAnqChIg1TGiu9bGGIr1OosHaByo1KlpLZHkZX+MisuuIHkFLIPOPCXZ/gkfiqLMur9F7tzplHVSqG3Mts4gbH7ae2Qifc0nwxuEjsIydETW2WXuKaTqg2A5yYsjqZuBpC4DQfv8+xK+X8YjgIVRxc/6OTXgkOftyJHgU5/8yI85ycpfYLxSu2mC+pW4nP2PM7r196a9gVgebIssgKMvSFxJsSbGbG3KQipCVQWVmWWTHaw5dmWWOmnW4/wCEHhRO9U8P9C6O3KrC8Em3mBPzkayR+NGHDVASbkFl8Ucy/mKXYf1Bpcs/p1VZM2Ofnfx7ZDAwAZmbbyIp+oB7Pmwx0OFD6A6LmiENbMrM4mFo4YnCnm7FdvTEUudekPboPjOp9q8UHnLQs1NIvXD5uDGrEm3MHM+K3AWKMVUiGiuYjbSwz7ODrJKfKDWe9s38a95w7ReEOXZ4tzwpd8ijSqXM2EX/0ObvoI1OPY104iWKJT6LeV5Jpb4myuK/xVK5VUgKqExuEetCxqrgumYnl0hOZzLNCn59dTCciduTlkqBqxsdPDMSS+x0Zca9doUN+Oc4wE6I7bd2muFNTuYGAE987nEn2ovJFh+E++x50+YBbRQVvOyQ7dVeWW5HG7sUUvI1O1Np2dF8SuGGzPph0597QeUky3u5XIGMIFSJfWGMI8/9uUL8ThwRsnxVeAUVydvfSOcAWc7SqyO5j+A9RjbLDo7b981jGnDX3zxPZZg0cAY8rH8LXeqcDIo5Hx9R8FyRBHQRXcKPg7VLB24KsRHW9vAkSZVdZWbrZm/3DCjQry+zK0A0fOpigYq5XCmP5ZWaialZ0AeUHqEECX8Pyxe3tsGQeXVOYYsFa4aX/DrPaJuFpxVGklmLvKgq//eYZVHG0NL2jTzcmzmpjC0fTzehZ7tMuqGBcrOzlILul5c9vmm7uWl8hvJtI+r0UWqxFE75i+cHZ8q+iuk4PdOmSoxt7YUM3mDt8EbnEIL+bulB0mzd68RlRcqEgueOIoQOrQxoE14OEQ5OencaGPhICnRVRAiG5x+9wdIwZfxVm/V0z3K3Z73oGn7OEdo/Hkmv8CZx2rzYjum5201mbZCu0vUuOdF+g4eMXZyMbpFOdfUh32R48Tw4WEa7qUM/sPhQdH9KCsKMHZAwO57b9wt32/+XOc+wxTKWDQ/bbohwN7eTFXFNy2v/JdcajhLmiIsBFu9liOBtbp6bSgwgOxGYc9+IIVVJ30akEZXFP/ubu/kDQR8/Ofn2KZXLv368ci53ryLDUif0bsom7xkB6MzTw5J1jLCarOyr2jtHJ6DBikGCqVCR8qSRlDjMPw7oPN8MXqx0ls1Ut8PQKs/75eRAX7EeN+aRcBUhZDE8iSeZ7xBRmQwa+FtXwfBQOJNEi+pVW/fQa7n2TFBOOKotdlrLVe1CbwYnRbQyuzSDE3lxxi7LNS5IZF8mMG7h+3oFCYd7FRSnMw2XIb0VR1dRH5rh7jbojEv7M/ni5PLP7YifT+dnFbLn0MHE2G/V4LaFGiyehQkvKVYPRYuAHnWZwpBEv+xIdT8qyzF5ms94No+39SwdXe1J09B5wzo7CaBxXOrznqD0IwvWTpLXb1GL5Ike3jeNaMm3pXtm5+oSo2RuXITMHAiyTfd1h5AeK73jdhYU77rcBq7qQYgHCfwBQSwcID8eNON0OAACIPwAAUEsDBBQACAAIAJANUFkAAAAAAAAAAAAAAAAcAAAAZGVidWdhZGFwdGVyXzIuMC4wL2luZm8uanNvbnWRQUsEMQyF/0o25zIsHue2sCx4EAS9iUhsMzvVtilpZmQR/7t01ssePCbke+8l+cZCmXHEwO/LmQJVY0WHE3kTjfK2srYoBUe8G/bo0KKlPn/s83C4AjCJwukPgQcJDR3SYrMojvixNCOlEiSfmT/R4SyZK527Djr0Uoy8XYvAzWusdvU8FIi5Js5cjHoPZIJb60cVEy9py5AltAFOorA0hq9oM9jMQK2Jj2Qc/oOfWFfWAZ7n2CA2IAi8cpLKCiaSHBQxyEzFNiPytlCCM2WuiS4D3FvHYjEuPSeldIHA7VI8LKXRxAMcZRPpyaJBLJCXZLHjrMO2euUSuPjIDccX3HlZWfuZHO6qyhQTK746vPnJsMefX1BLBwj1thP4FwEAAMYBAABQSwMEFAAIAAgAVnpUWAAAAAAAAAAAAAAAACkAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvaW5zdHJ1bWVudC1jb250cm9sLmx1YY2OwQqDMBBE74L/EDzpJRUvtQcPLbXnfkBgSXW1AU3smkCg9N+LCkUKll4WZmfmMQMpbeNI+PIi/Gkv/CEVviyFz1Ph8yzifKxIDZb3pgYte0zCoMaba/l84yQMVMMAzpM61nKwSMzeUYcB+3pzgMroRrWs2HQMsefrR5UrPVpyPWrLCmbJ4RQmfDhFGEcA8yq5tAB2a8k7J6MkDLAbcd58JdOobrV3mzMs0U1E9j8j+0B0/QZQSwcIizcxULUAAAB+AQAAUEsDBBQACAAIAFp6VFgAAAAAAAAAAAAAAAAmAAAAZGVidWdhZGFwdGVyXzIuMC4wL2luc3RydW1lbnQtZGF0YS5sdWF9jr0KwjAUhfdC3uGSKV1inaxDB8X6FIFLtLc1YNN6TSAgvrukLiLocuD8fHBmdj4oaVJ7NGm/MWlbmdS2JtWVSfValqLo6BQHvagqReF6QDxkt+vsHIghXMiLAr5ijXiefO8GaH42E8Pj+QfVzt8Dx5F8gAYCR8pjplt0TEoiLq/sm0JcfVp9jTbfJ9+9AFBLBwgKN0tDjwAAAOUAAABQSwMEFAAIAAgAZXpUWAAAAAAAAAAAAAAAACoAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvaW5zdHJ1bWVudC1zZXR0aW5ncy5sdWF9UsFqwzAMvRv8DyI9NGFp1p22HQLraHcrDHZsikljNfNw7MxxSkrIv4+4SUkZ28FGz3p+ekiSOkslfFVaQQwGv2th0J8zxvFQ5ylPS4uGsfueEMk6nQeULBaLF3suEdY9591oqzMto63mtcTdnhLpNAuHK4ihpQSgBcEhBi/TBr0QVFrgBHbhlCPxhHJCGvEta1ZXaCasEfesjpKjNi4VntBUQisQCspUmMovNK8C4LoXG1zuZkNw97AfHcOljtMYizhwSY6y8Ri5944SVJwS1zA8obKtu2NvKOCFcND8HA+wo8S1OsrRGsxFZc3ZDyLG1qsPVHZ7baI1NVJCSWmEsr6XNJu3pHl9TJrnZdJsNknztOyPF4yC7vYDSsQRGHOzWl3mCfYTVW/29jliLNPqKHKI/8xoA233z9dIqMqaukBlr57hulfer72awn6/evuo+A9QSwcIGhbK9VMBAACWAgAAUEsDBBQACAAIAOGUv1gAAAAAAAAAAAAAAAAfAAAAZGVidWdhZGFwdGVyXzIuMC4wL2l0ZXJ1dGlsLmx1Ya1WW2vbMBR+D+Q/iD6loPoHmDnZ2AVGoIMVvIcQihofp8KqbKzjrqPtfx+6HMeXOMlgeYitT+eucz5ZlTuhmIYXZIl7zGfKQfinApa4B0GNrsSusKB4UBD55XxG2/dfb1NrRCqL3dzcfNyDhlru2Jqz1COVqMUTQ2/hw5qnm+2yu1OwtV/WgE2t2drFVPSwdLNlURR99P4hY89CNWAojLzRO5SldppNpWCBvLiezxhTba4Ft//PIeVWIDjwEt78wglez2egM0pLKCkM+wIPzf5TJiqEOvoJOoP6m1QINTNYS71/083TA9SktFPCHFX6UdlozS+Jj14/PiHlbeUSVMZy720yjhOe78CVCLLvCPUdCoSuYeN3jT+lzXbsdHXe69TZB+P3ZYWmbYNJa2+XFGzZa4+80QuMz6TLi3jNQy7xpPfreL3i6YpPB7EadZ0hX/eutbrpuh4b18ZjoTo2uPNn1VVxI+MBGpoV0+IJBmi68oMygE/kxmzQnbmgHBfGl9DlQ2PVNk3ik4gI6AqFliWRPHTMyErBwwuxEtXRBJ9xbFGMY7+UeauZJFoqho+gKWw3uVbq96NUwLBugGWlh06QAkXQ5uncOMGDD9phbf4bCmRLXEgSxRC4NFn725dYuk0krE2LcnATlfQGbOPC3fblMAhaal+0fRnyC5sJu3KzeeUr6WhEGPQ+LpnJQ+Qyd1oRnX1CXdCv34B93VFwasBRxqAMnI9qIpR/iuG4+8NrEQ6t8EDYcY/OlXGY+GNkeCDCdHmGK/3d8l8Js6fhFp9LjaDR2ICmXS1PcN8uWGhbmbMRE4avhj5hHhp4gkHHHDqgUOwVs7tzwd01TY1ucQsveLYo0zaOU/mQXTFcTGEsw/agTvyVKpu0bxzfg2riH+/HWvHI54BEqBu01BScvVpF+n4KDW5fucX7gQzPayBCjdA7VwL5fPb+F1BLBwi9ok/BygIAAIEKAABQSwMEFAAIAAgA4ZS/WAAAAAAAAAAAAAAAABsAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvanNvbi5sdWGdVluP4jYUfkfiPxxZGpFRk2iQtq26nUy3l1mpVcU+dNQXgpAJDuMlOJHtUOgy/e3V8XEuZKDdlgdsf8fnfnGKMuMFGKul2kDiN+NRQXBe6h23LR7TuSWvjlZ0RDy1pOyZ646Ep5a0MfWqI+GpIdmsVJnTZ/mqEDEdG+ruud6guh23zzHuG4Lmf2wEctGmgZU4IIhLA1VcagMJra3WsnW/2bakY4UacWlFaKlQrFvHowZePs5+R2WyQCyKondZwY2Bn8Sq3ny/5pUVOv5oStUw4B4S+PTSychrlVlZKhAqK9diqWQR3I5HAFrYWitgqi4KNh4Jte6YhMl4JZYY4eWOVygSWebA0pTBAhLcpCkLHcQ6iHlo1UIrFjaseQvm/ppqEeUR3SK6Y7QtaFkIzrm81CAhgbsQ7g7TPIQprEu8Tw5kWAtofiCdszIHVdqhX/NsAfZZKLwBl4hJU60BS9P65u7NgYVUoUF26wS7sPnYRVH0obZVbYE3xU/cVqyBG+Dwy28fZm07YD4rrvkO9m23EOpT42X0EzzMJl0J9rzo53TCJhDH1BRIC2Eyv/kzPdxNo/QwzdOULSbh0N9bZJmwyUV3VL1bCX3RHSIN3emjn+8OcbXuRBH8+CyyLeqFGZ+FEEmVA1drkCr3eUVtfyVu6XLpVc7nbMZnbLFwqSqM8PfvE4io8y+xRD+rXCppj68ZHxK4zneB7exKW0s38fTNhoXQ+NkvIt+ALh7fDtPgJtjFLJSrjyKzUGrgWvPjMB2OsQ8ay7MtwffuP7S6Fg8nJQv4VRoLZQ680IKvj5ERQtFV818T6rioBJ1Gn9bonRuCJGC+6PpWC+PnF3gTE7+W2o81Kgups7rgGrTIhRYqE9/5cnC353teUGv30nOfeaYHtliADzf0GRLAIBBM9kizdPGEBHLu8ylz/yaQX9NbLD+MW6ndu+DKFxLCujqJInjSgluXNCcziiBz5b0VR8QEpkquqb4tSONmlqm4bgqpZw5ZiqB/mCCBKQHYLdtwD1LRm0QG0Xh0UnLYOpt71g2kt87Sb6UF3zZHFznaamHmW4wbpTvY99OMP7RKwReNZZ61jb3MO6VnkXp08uh4liD3FvZ6is0Zzi3/yAdamBBYyNwwYwt23odnKVC+Z/pBlMMgwvUoou+y53vzzAfb2yYKzoi3zsBrAUKN8lWA/s3pT//g9Au7PFKw45ZkRvueMyUL1vmAHwf06DLypU8jxJNdX/epNEOIuCrLQnDlyE1UPIkG/JlKh4Tj0ctw2O15UQ+GHY46GkEboYSWGTzBWxpNJ9JzInknb8PJhe5sFtYCnq5Mwv8//QZzL3B6+rn2OfDffUTvEXJP8Ama24Vvj/z1S5O/lv7qqZmw+0kc2ziePOCL3q8HNDhu60D4RnPfVI0TdGUvlF1WutxVNiBb3edpwNLD4/v08MPX6eGbKYu9rEDgB5GvuAuSror48nNEaGGqUhlxVcpXl6WMRz4gKOVvUEsHCJleHxpgBAAAlwwAAFBLAwQUAAgACACTjJFPAAAAAAAAAAAAAAAAGgAAAGRlYnVnYWRhcHRlcl8yLjAuMC9MSUNFTlNFXVFNj9sgEL1b8n942lMrWdt7b6xNYlQHIkya5khsEtM6JjKkq/331TjZfp0QM/PmfUwZrm+zPw8JH7qP+H6Lyc526sPl7NyPPMuzjTBofOem6Oi7dfPFx+jDBB8xuNkd33Ce7ZRcX+A0O4dwQjfY+ewKpAA7veHq5hgmhGOyfvLTGRZduL7lWTghDT4ihlN6tbODnXrYGEPnbXI9+tDdLm5KNhHhyY8u4kMaHJ7aB+Lp48LSOzvmmZ9AzfceXn0awi1hdjHNvqMlBfzUjbeeVLy3R3/xDwqCL3HEPEsBt+iKRWqBS+j9iV63OLvejqOPQ4He0+7jLbkCkYpLVAU5+RRmRDeOedaFq3cRi90/+pYhUn+lUNMjpkiV1yFc/vXiY56dbvPk4+AWUB8Qw8L53XWJKjR/CuMYXsldF6bek6n4mQ5nBgd7DD/d4ud+8ikk391DX85w/XPcRysOdhxxdI/UXA8/wf5taSYFMdkpeTviGuaF8n+rz4uEmqNVK7NnmkO02Gr1VVS8whNrIdqnAntharUz2DOtmTQHqBWYPOCLkFUB/m2redtC6TwTm20jeFVAyLLZVUKu8bIzkMqgERtheAWjQIyPXYK3tG3DdVkzadiLaIQ5FHm2EkbS1pXSYNgybUS5a5jGdqe3quVgsoJUUsiVFnLNN1yaZwgJqcC/cmnQ1qxpiCvP2M7USpNElGp70GJdG9Sqqbhu8cLRCPbS8DuXPKBsmNgUqNiGrfmCUqbmOs9o7i4Q+5pTjRiZBCuNUJKclEoazUpTwChtfmP3ouUFmBYtZbLSalPkGWWqVjQjJAElv6+hvPHPWZRe/ruW/96IirNGyHVL4MXl+/Rznv0CUEsHCFtrUFKFAgAAQAQAAFBLAwQUAAgACADhlL9YAAAAAAAAAAAAAAAAGgAAAGRlYnVnYWRhcHRlcl8yLjAuMC9sb2cubHVhfVRRb9MwEH6f1P9w8guJlBoKPKAKD5AYEtKYkCbtBaHITa6pmWsX57JplPLbke04STttL3Vz9919393Zp20lNRjrtlKrP3jZyWvbuQpBgMPfnXKYsbKscdU1spY7QleWLx/Due4ky2dnOqS7k07Jlcb22SwD6jh455ShZwMD4jgoIEDEczA2SMqsbbLz/jv56WHn6/RHMjVIWyRJXheIo88EKcvPPtmnKAfEiWF2loBo7rz34upmCL24ugEBRmmPms9B2wZ2zhJWpKwB1UKtWk9WgzLw1bTkui0agm+2RrAGvsiKrFMWzgW84ot3/M3bkKi25gXBytIGHUgi3O5ImQZog7Cx9haC5161ODtTazCWTmTzsqysWauGq5GVNmjAIXXOAJp6LM3q2ksXvkau7dDxW8Td4HuKYASlsHVnYgMM3mvbZFtsm3x2BtCzdeQtIMAfoz1Z/QDHGLVODgEsTI6BNDUEBLerX1hRaeQWA+Cyk9+dXSuNjoF1kPnWTMceE4cMA8+Pxc9cCNaSU6ZheR4a5bkHZQ7XBTp/O8ZbTk6aVkuaaIVJbT4mKGDvGefoHOfsnAUY6haHsv4JSMwT3jHPSFhjWzm1mvCFISaRK1s/gIB9TFBJwsY6b2Et1bYjVgypd51/kT1HMB/8z3w+/xge0b4NW2AZdRVQdc6hIa0MLk23XaE7/A23PnFH/FGOGDtCtK3GD9WSVNo/5P4NZ4uCEUsDj24ej0pqPelMm/bZfvjHRMY5T1jOec6ONIOAxWGYZwxI6Hz5YQksTWU69LRqksLXBdPXrJ+zbzbvc3svn9A9qfPxns1CbATkp5pP8x6VMAnknC0Z56dwb+4ri9ck7tk4/os7NJT5Kopeaer95M2PTe+XRrRne8YKbavC357DeBH7ldLvEF9veP7/AVBLBwhonxPMsAIAAJMGAABQSwMEFAAIAAgA+4tOWQAAAAAAAAAAAAAAACQAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvbHVhb2JqZWN0aW5mby5sdWHNXG2P5LaR/j7A/AdC9yHdOLWcWQS4ZM/tc7JZB8Y5ToA1fB965zRsqdRND0XKJNU97fHcbw+KpCjqpXtmD5m9g4HtEfnUC4vFYrFEmcuCclIy3VBT7MmaKPi5ZQoWSZ6XsG13tKSNAZXnX3SgjLc0WV5fcUvKxAGUuUgIoq1bw7gjzBxFR5/nf0b0Hx2arEcNHayEignQZN391XU0BeWcrN1vaFRMoE72t2vkkpZkbX8CjjKFPO1v12hODZC1/emaFD3uwA7S/tE1a6OY2JG1/yM0196Wrjmzj6ETTA2GGrrlKCV+7Me6bXd2pNs2MC13Q0Lbme3OkTdK1o0JuAErU0hRUOy0dJl77Hqp1m5C3R/XV2Gm3n//I1kTwXjfVrWiMEwKP9RvhQHVLLIsW15fkUFjYLgIfrRlolwkMShZWjoFplWzPEGUvfAD5az8rqV/2/4Ehfnh1Fj/eLSDWhvVQtpqUCU11D49IeVqtfq64FRrEgi/FZUMPhI3IjNUh/IjPekfURo2PaXYCA8NFeV/wkl3bU/XV6XELpRhncgNYHOLjY6/tMzf7Vtxb+kSP9TEKmdJ31HOoSTbE/nxwztZAjHSua5TG4eTDaFHZvZESELVrq1BGE1ohWupYoJyUqCwjuLrhipau7bgta5HHkBZOVUrFnYawuQOl2SGqN5KC8tsaXmUjO6E1IYVGFJwHlacCSBMIHpVMeAlciaEVV4JswfhmsjAOpt/iZ/+9eaWrB2FAwPX0JGNJw31W3gnX8Rclmmy9g1MVHKZpIlJlgvUfbP5mo584vbWixJWZ/9jQ8oi+fjw/puPD3/6t48Pf/jtx4f37z8+/P63Hx9+/7vEWi5ags6UFy3oFtUnGNCvguBnjxs3lbdv3e+vOIVy+9PbMJ5U76Uy//F2KyUHKpYe+HR9NTBehsK+NVB3rt+7jDa0uEcDYfcHfBj1owDi+ZNfXZhwgMFyxsaYC1kHP1tYGU7VZXAT25jZtZ5XUuUKaDnwGlYRIY1XIO4IgWQxiCR9NyGbzZexMl89bp4ErWH9iP8+paSQrTDrR/vz9Hj7dHubxuSC8cGzG0DckvCWOo9D0yZ913LZ/R27clB5rFjnjMEPh3Q91fu6MScyS9s7cupn4e+cnuym68S5x4kRmCjhYf1ofyIjfNfSD62qaAGBgX/+BA7fSBXR26dPoP5Ly95zwJgXWPRNEz64VtaP+O/lQZkTj4aETyNWA/h7YZg5Bbx7vCy7Fczkoq23oNaP0UNg7Leqzeb6KixhTTQTBZCb7Cb73R+I3lMFJGz+mjSg3BaREirsCol7Eby3wYMJ26dgx7RRJ9xo3M6CmhKJIqjwoZjIipg9NR6xp5psAQQpFFADZXZ99cMe+qjp8gkLo4LAg1G0Y9RIhquPMEGY0WQPtARFFDScFphDHfeYgRypJo2CA5Ot5ifiVb3Lcw28uiPddk4Wxz0r9oRpIuSRALr8MkObfaNkTW6yN0SKI1Vlaul7/ZhBRkhHe2ZMaIMxRVaEuhGk11dowiCXabKTAqyEv0ptrGFt2EKbHABnZseBtM2BuoDQMV904zaS1IBzHKKdXf9D67hpUmAUgwOUpMLRDEfQYBJVomVc2L0hxz1OCOXcBtfrq7s8h5+tztZFbCZBOXdegVNjjpIsKNcSuQQ3oJrchVhlWSzPDcQrvbjb0RrulssXDnjhNEP89dX3UtWUkz/+/dvQ721p9gq8KfXbyyosX2zrbrE6Ky4aqjBmeC6oDx4iekWs4aWAbqhHxnmnHRCNC+VAeQudh1ZMaeOYoDdRUYB2a8ej7fp5+zZkVM8x1FBIjNZmz1SJc4mNXuveGToJDRSsYgWhDSMFl7pVkKIV7gEawowbzhZwnWHyLTXY/EHLGkYzUFBBFGUaCBxsJrmQikizB3XERgUrsCbmLV2SLVTS+WurBBO7FFmSI5AjFQblKyjkTrBf7CjrrkW54OQSCtThuAcF1j2ZKFlBDbigw8z1lQAoNVJuwZ4wQRt0/8oSmj0OSRvZ6M5wXB5B+ZwBx3h9hbuf+w8z5j0U90hOO3tjKIgsqvDhT0yUGAdco0u03HKT258IFSfX5DfdQJ35xYOB9Feb/4wOSUad8giDKdrSJUlkSzUrSIHqaVI5NRzXFWf3aBAmdvqtdQVUbfHl+ia7WaLCrQbr/l+tb7I3y9Su8ZrqeyhtnEIBPkWaOTBtcEuyitza3KnLJHyK2Z1banuUjE+bQXnPuzZTetvpjsyL2qQkyfNAnyzJ/6xJ0ih2oAaSeeGrFSml+I1xhrF2cTF5HaL3FoqW6s5jNGk4FQLK4DK1PLh4addpa1oFgfdkqrUXZ1fmHdMhIN6lREu0NLmLJvCu2zs8P1eLYBiONRBmfqOJNrjS0UCUKKA88pYs6+2r26IArdOIeVfTWAwNaBOWZInINIngSTcZnlWUCXurRuDoPOM6/ZlieBgYuSvWC4Yt9ig+IImOytl3Lf0rbT6AMei6lrqFZwj+zKqKFS03p0+j+wut4UcGxwlVtwaxBvUB4yTl3dlmk/hSUlYwVbTM5IUUAgojVc7K5DY+meAR8Sa7cfY8c1AT8GDsae0taYVjXcZHXqfInKy+qjWryoBc1lsmqJGYtbtK2mKOJr04uCxJw9Du08MyHJTQUe1hytasFvdp8t+9xGS5RK9ZxvoIMOgJujOqPVQltCjauuWWCO34uJnVIoIh6rLKMc+ntJdVSGEoE3BRUgA9L6fnF0vhEvMkVqw+j7hGyZ2idW0dSzdA7y8LjPG5xz8ve45qoIaijK802wnKL0lHWO5gzwuNwFNZxZ4y8VKJFvxpcmOSoXS5lY1U5qJQj3mBrI5bLEIbqegOVoaK+0tiPC5H3POiYvRA3JHyiybE/ufZWy4xW+BQGMWKVSM5XOLfAXMEPi9oAB9IZALLxpf9v8M8LydwG6xuWjeX2GP/86wtl8Eqbi+zxf4XrNJ2xFZWWOuC1XPsZeWA+cvkyAht5Q1iLJ5qzCraDC6HPwvPe/iLAuGYaKRFCQUrQY2V6B8jG1HFzL4GF7Evw58GWVLYFwWYo1T3KStDpc5veX6/67a+jUdmYEs/GWbUt3Fx0uJnC5OOnpUzxb1hra7PVXDPF0aq0yhBiTflbauELev1W/KEPKtaGK7/YVeSXqBFASZXoFtuzvCIIcnQ0qNTEb6+WOi2AZWakInE78UWJn30iS++MUPk07I/JITUaA/aPDNoizmjse2LVI15Y9Wl3nJrVKuvM3HqM7AJs3SG/5mcaybl8tKY2OU1LfZMQJ641Gs5HjJVtHDvTf8Jqsymf52IHNM/PKTf24Nb315I1WhIJqkhboLm9RSz7PM+J41FM3HwJ5bgDGFN+JkLC9S97XidiUTm3dQFiU1XdH/s40FwVUwHleQclM6Cid27L/+QPkO1k+UtWcfvIF5nbDtZToZ2RiUomdsCXl8rJ2qiWL99Qleuj60fHyLWNg7EQ5pN/mdgBVU7uTrSnRTJ7fpxNv4gJLeQc1GoRySR2i5HLe7BrDTjcuX+/t+L8fQk3mHDTq9aa+uVXWLJ7dr+zltkDIlBtK7lyrRKWUVfZ74d+zlHTKjC2guo02vrEATlL9Kmc5DXVsbKmdWlP+y8khKdgFnpW6DFKxrAsZ+VHGLoyu9Zr6XDeHOMtIn1qVolaIFqvH5O4WWFRGLonCHhWPmEI7ldh5xnAK0ZlvpXpWJ4vPwMijuBuRU4rz2n28+iCafbeQUKqj6LAgVV8wroxh6MDrBnBf88/uREzqsTbVSdLr0zvVbEQZE5iox1Gu//Z856TBxSe74YHfXkUXS5debSttw2Rac7Bxme7lYr/8KCVV22x3SfwX2xk+UXLlHpaYZnS5/AeqEbKyRKqfLBGfPsKXN8zsQRRlThsNkjJ+dQMrABXvFs8G7FS83gs24mNCuBBPLJQbgbr8OPND2njM3kPm1CfPbn7nZeNr2DetP/H9m7luWLxteJdXeuRgznh4dHk9HtoanWZ6sQRlGh7Q5vrzWN3pVM8VHFp2SI8u+xZgjtm5Y3Q/IjU3D+7Qzxr2fe/BNez0wkRe9mJn0xYQkVbXl03p2g0/PD+aQDuTPl3MuYuZdDr6bGxddCWMR9fR1sqXhGuj4ydwH71eUfQeVO2pwe07PmXP0c/4iLxsh05Zliv/sz/Rx10PndEV81T6qgwxfDcvtTNnq/PNpF4wgWk65J8l1L3zmn/t5VUpNReOtCIkpxNo3vTs5z/C+m4F03r5cYDrSbu4t5NqTWFG+1n98nWGUhs6G6pg3WffH+ho8cgzLw3JXQOdxsudhOpL0rkfqLe/a6GFN6MXyJ3t9hXxJ3dd1RNUo2PY1l0QF6125re9kOP7KQTdY9O8ygqftmwJskNMd28es2vKCPXtdvOoLYrh1yaNvhXQpXew7XKDzJcrCLd5clsK7p8eMtPYzFfuOCkNkdfThlFzUZF+0Hs2wvr4fPAkiWBYMtY3wfakYjuaS+D4dOnbSfiSwjSZYs58c1dbHRZxj2nmf3IUR3sVjJivG4yrlJvrRJA8eLo1+5t0dmz/QPodHf2XCp+lN3Y2/2RshjF6gK1kBeBkj/eQYhBoq9kFzuTs8DGsUKyOuWG9Zw5tTuYAo0UFXs859baCHXToseETSduYPi9dR7ecyj7H3XsliC7cZjrgsow/YgnvkvUga9Pgee7aMclBnLapuSGujotN2NMIWaiMW35Vsui/v8wHRLOdN0FoiJfV6DaKcjok1+YHDMZeMuF44BP7esuN9SNeWJV/mL1uSDzmDo4a0ib+NGct6ONQQB9SmHgzzbhRFQj7rsjeydku1wNgyAGsw8IQ01+7zCVHYwiJo+5BVlHMp8C3t6YBILQa29pR4NxuW4wwFlYRxuiXTKYgpbxjLQp1vUPFc4MQPxTORG5g4BcQ/dwWgE8NBAYaDMUecGC1b2q5wpNzsxZwFBayuY1vZGggIYTHoPwpKAlYgXSLXxFPNYlImsLoKQi1RQXkLbEcZ6eqKpos43qMFbpBEJ1sbb2jpzXsuSVYNI8ZTOzufIBZ+ZVcNqyCtauBS+n2zQRsnTTE+v3bjvsj6d3z+jD9osYPOSubvNMaJSDETJT/mWasBAxFsQBeSKlqydseq2ZbzEgt4laAAVEjB0M4jXDnE3kp3EMwgBbLffylZZLuiyL0I6lrPwf+8tUkjOmdXPMA76HGfcKmy4x1CCAT7XeBf6PII+TBBI1U9AISUv5VGcn6Ip4owf9EEudgEU55TZUbSxG2M9WUcvwRwpM7lzaKly3OJzdy1fz3ObukGvzUwfffDs8OYalG2T45cQGHCZKM8huTyidRyU4lco87oE4HTF9SDPtKKcbzFSzGAdomQaec0tH8OK+9xIDgp7nF6eiirFDjA1VjB6P4UTUN818qgz3tBtbrEv9BWNx6eU1PIwk/acZZR56pjhdBI14LV6F778h2CzfRPDWrQbZdX+8ssp30kjw2b7ci3dqP5/KhklF7GC1bF8sz2W021/JynPGwUav/+YyQowuhhodI5H7G6rZMX9ZN1KdZ+XUsAsotWQW80KWuxhlLop45onYYxLDMOzXTEZLnj7l72ROrdexmjKd9IPy8ipTpHc53l7nA3wtnAQWHoJ8wcEh6BFAY1xptGGKhNETKdiSgGivIAXsKOGHSD/dFEXSC/LdPhzMvBm0gVjzPM/S6QN5XgmwfzApob4QVSOSQ8WqNy2xjnTLh0UdHSQYzuBaZxby55NTzA305EozJIBv6t6ubwdCFCUd4eoT8HqdqvxKyZ7zfECGTwYECWUl1HWVTmmHdb7/eRSccoF4MnRfi71PIFbU2dISqZwJYSJxCUh7esc5QlniAYdeYg85yGzZ5h+WeO7mzzEw9yAqv1MjdxI2TVrI2EhUXTwN2zv6KDnNYzCoXJma15YTpxU0EK1o6uI+dI7/n8HzhTXNoHbrf9Gp4jKNCgOizRW2sXKGyHFpkPaCm705JkMSzWhJPUCzZAfPoxrPF1ZKubwD1BLBwiE11y/mREAADVGAABQSwMEFAAIAAgA4ZS/WAAAAAAAAAAAAAAAABwAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvbm9pc2UubHVhvVfBjuMoEL231P9QYi621mE19/Hc9rrHvbRaFrEraSYEshhnPRPl31dgwNiOM8lqtJd2DI96xaOo5xaqZgLOTHO2FdhCCRr/7rjGjFRVg9tuzxp2Mqir6veIoqJjJH99EW6xUZXRiJVUDYaxE+PaBnPPMCixN1C6x7i2NZrLPZTxZ5hy5FAOz4i3/BZsn3GwVrJmJgzT4fX1JcxXf/z5l+XlYhzbdbI2XEnA/nRmIsM+f30B0Gg6LeECkh0tD/bUfD9hAWcmOjswatBgW2u+xQx7KrhBzUTlUHkB9QcXjUZZXq5wfX1B2YzMNt6ZW3EulvGN+MUb2R23qMm7o7VJFdP5rVICmVwHDPqtz6vtN6zN+jz2J41ty9XAESUK4tyRZ9xwWg1LaZwcACgbz33Sqsam07hpUPCjBf9C8nFHS+bAsGGnk+A1M/N9j8zDwTG9d6d2HQb5zlWypWF63x1RmjaHsoTPYD5QDiCAndLAC6b3wOVwHWYrGhWg4Cje+Lu7DclOmN7nAeRqyf0QLf4nkrgbG/selc/nk/3722eblV80AdgBypvkBmc8CbHZXNIXCKeXgIspIFy1ENu9zzDhyO15xK1cJ6DrUrHwI1RSQPiUbpdEDBrywp4GYGVXRkCSlJXMj8/KLjSQlVKbF/mIL9IEwuiQwLzfBL6r7TrxJs0uhyO0RawMYJ/U7DwF14Cp0azGLasPGckkF4B9TvLbzPbhu6w96KHfvfnr+u5pd0vGXchqLO2FHFknD+of6aICoTTzYUFpIJILklNKcrKWmO/EYzd2mxNc4oox2KkM+6L9UNqkFvGAEcRFi/5voz5gABb2UxO4AVoYwQ3MwgxuYO4YQiJIlCRqua7Es61/QsN34F4n/dVzu2iXL5TSr1eybJATFKF0kmriEpSSuHwo5OcMY5LvTdsYB/3XzhNeclMAGIO5C+I0yEnsfokKTxpF6kejYEzvC6M7THp8bKzLbAil/vMscz2RFOCv6F1De2Sn09O+tdPDkztNnC7a08FmW05K5ikFLmsKXMlPDWruNJRO6uZZU5n7xppRpJcjKej/ySss8YNmkbaVuWU86hRzawjhg4hS8RaPaJijiRrFYer/TTrztmOC/8Cll4dzPnBpP5Mu1oVLW0DjB4tWysw/xbDPZ58QNj9YUrtdlUDcRJU07RW8d5+1tnW3zX5x0b7eabEeMe+ynuJmg3Xi/wtQSwcI8guX5o8DAACKDgAAUEsDBBQACAAIAOGUv1gAAAAAAAAAAAAAAAApAAAAZGVidWdhZGFwdGVyXzIuMC4wL25vcm1hbGl6ZUx1YVNvdXJjZS5sdWGdVcuu2zYQ3RvwPwxYBLFRS0a2AYRm013RTYFugkChqLHFXopUyeEV1DT99oIvWfZteotubGkeZ2bOHFLKCK7ACSsnggYOtEx4SK/HpmHEO4UMuO7B8vmKlH0n1raWz+x4BGNz+n6nEhhZqa/Q5IfV7Hy3Gmvnu9UxchLDzRVf97vibn/8+VdoQEsVbFVVfQg9PoArfEY1cRr2O3kp44Su02M9mr7VfERoGmAxmAENqPc7gA1CaCIlxNfglZfkqqVryZOxkqs1FW6FoQH2oW077rBtzyXSnVmdsNJvbKKu2ZmFdFQOV3zBx4nLq059frsCq+tDyliHMhbYd96hZce6Zm17Llib8nfwsYNXGntZ/T+XdwI1t9K8Mr3u97v4s1nrl49psZ/ep/+vZcNP2sz6F+OtQAcNfPla0iZu+QguelZVBIdF8lY/COXitSBpNGhjR67kH/iT5wn2kDCOeesZMQjmhyQWyIisOXgd+zmyNEUR0UVaF45R0HqGO707vSuQ2d0Aa+4Rc62MtUb+FTb+onZv0ki34lUFvdFvCTpDA1qYJQ3A9QIXb6PhwrVYwKIwVy3j+F4rdA5mfGsRuCDPlVpAavgcN/W5ruvcija0UcG3u344mX/GA1uIiWxBc7fFjyn/U66TQrb4yfJAsMJ0jpM8091RqGZtm3TWng/190cWLqcUV1UjlxqKMMsNcUVywDtnlCeEMOAJxIDiCS7GAg3GIZAxmYwX5YS3FjWp5U01Kb5IfX2s+2rCm6rj4ulqjdf9/0gu90xO3axsZep2k1QVOJJKRT+/kRFCT/Cbd1SYlwTcVdKlvH9aWhB5fEohd4pYD3fW5gPrDka+wMCfEQapyQEZmAe0sdUFRGj6Ys2YWa8qENY4V42mB4u/e2kReoMuCJ4rZWZY1w7OBBCHILgGo9UC+IwWOiytIOp4PGSUWlE7jKZ3xAlPt05iczAHvjqEZ+lkp3D7RVjPQ6LgJs2bu66L9V+ZvA/KXG6NWza9Do1h/0hrIYsG6cANxqsedJx+4NOE+gSdp7DZOV4VV6R4RXRIhBYUJ7SnwpIBF9YjY8jMl7Ai9yQnsFhN3LrwfZeUF/SqPB7EkYfJ1pf38N9QSwcICXUUhEIDAACTCAAAUEsDBBQACAAIALEQTFkAAAAAAAAAAAAAAAAcAAAAZGVidWdhZGFwdGVyXzIuMC4wL3ByaW50Lmx1YY1WS2/jNhC+B8h/GLCHtVFZhbeHomm57habAgsExSIBekkCg5ZHXm1oUqUow67X/e3F8CUqDrK9SNTMN+8HJXUlJHzptAIOBv/uG4OTN8vlGlf9RqxFa9Eslz8QoJS9eDO9vJBORGmzFbL5B296cad7U2GmgJ0pOIeTOpbU7YRpxEpi96qWhBoL407IXtjXPYigsagDAffvRNygbVStI70M35FvDy3ZoldKB+4tcPeKpA7tFq2w5DDw0WeEbMaQzQgSQcvrP/8i1Y0k2mw2+62SouvgA7n23sdXfjKNSpY/vG/pEzgcT1GmFUZsYaXXBzjq3ra9veqsadSmGHJ/izUaVBUurlS/XaEpoBIWN9ocFles0qrTEtlX1mxbbaxQln1lnV3rPhzQGHbKzVHSFnDsXMGTvao3BpWVjcJg53R5Ufeqso1W0fnSO3m9Q2Un5HbhtE0vLwBClQRpoPgixdvJEQOlqZ082M+o6BuCPHBHLzOnQKg1sIf99R8P+99/etj//JaV5XPQL94wBKNUoLMWnzghD5hGowl/9BQAJbauQRyjiNRW2M/AR37MWVmOUCf/aurkBQfGJ2vtUz1lWbjjJBmsgQ+VD2pvsX7B58wAieUqRwElSOSiWvtjOLgXHdw6QSptSII7c+ZrzkJ0VHWesuR5nIihN1KqYpN6ZvxK7PP+9sBzehLxofAYXKJT5blvnFiC0+VFiGs2g84arTZgsO7AaqCVgx24hsY1UcIQ0fEJsaVkbkHIZpd2ggM73vn44r41INQhpwnZ6Rutnz6qBYTNMTD79s6K6mkB5MAGTc5Low3/c7RzYaXJl24BK60lChV4/Uo21QvD7J4TEikGf4vgXZEqFrRmQ25dyH7XOnnHI1tuCfs+H+AGu17aESRFPmDqsBCCcg7M68nHJckLdbh/9LRw25CLnuDNFY4CPN1DpVf3UVk0rY/6xzxu5tLBpml66dqY+NDd8lHaxgyPxi2/Qzy+OA6jGK68sNViDSZTMGh7o4K3NIXFmVC40tj5pXLrpFgSOU3j5osJ2e2oVZ07p2ec0Y6pDAqLE9XIYrcr6EJLCyY1/f1u90jlNj1GXlhVL4zreLnIDkc1dVliLp8uV6VefcHKLv265cBuevHJ6LqRaBhoAxNK++Z5in1FvqPjOz53H6kZ7+ePU85j90ynWbFC+xqsCzRmlAdrhOokpSI1dGwlFzrWzhv2KytLNKYs2TvfKxRi6pmzQPNGCVPjinIapembpXHtmhWnqb22XP1QLmKNC5bspIiodDKyX69muiG8k+53Jd2UcU0AH47aDNsrtKi/HNy/oJtOTz235xC1Y58Gk/4/z4Ud1lMWeUb8l8NsPkpK5PB0+h7m6QYNv5PhT3ISVx+Td3EPZH0crD2TeTugA/ab/0oOF8Y/gP8DUEsHCNBk3wMlBAAA8gsAAFBLAwQUAAgACAD4LVJYAAAAAAAAAAAAAAAAJgAAAGRlYnVnYWRhcHRlcl8yLjAuMC9wcm9maWxlLWNvbnRyb2wubHVhfZHdaoRADIXvBd/hIL1Qqj5AqaWlj1FaSZ1YpfMj40hZln33MjrjrhR65ZjkOzlJqqrCK0kJQr/ozo1Gw2j4yGRNP0q2GIz5ZgFlxAzSAp2RkjsHNzAsz4t0c5pUVfU8kSW16mhSjNnZUX9tKctusRqOPiU/bokSpE9PaSJNR/LavSMpX6TMo0xZ13WRJoCXcaeJjyKbBrCpBDtocL4cmCh/LfV90MCyMo5r/3cAonmgNzZUrXZajBoTjXbOAztqx7anjucCwngk9lBGrJtobgQeFLluyLOPto0bbvP6vrjLig0d+51zA+stiDjaW8i9o1lHyG+s/VkZwFr4R/iEK+xHW8NpEuYgIdp9ljyL7rLy7FmxqAnNvsi8iGrxYJmvyArfq/TALM3P/4Cv2IFL8QtQSwcIkgNqtjEBAACMAgAAUEsDBBQACAAIAOGUv1gAAAAAAAAAAAAAAAAeAAAAZGVidWdhZGFwdGVyXzIuMC4wL3Byb2ZpbGUubHVhtVptb9w2Ev4eIP+B1eEQLapVkxa9AkbVJm2cpjifHcRGvjjGgpaoXZ610h5F2fE57m8/zPBtKGkdo7j6g1cakkNyZvjMC7VcLl+WDe979k51tWyEevpkuVy+rKVoKqYVL6/eDG3Z/8wuu64RvJ00H8lWPNB8poQgrauVm4cVjLx0it3dP33SdCVv2J5OT5+4Dm2ntryR/xVHAz/tBlUKVjAl/jNIJdJktarE5bDmFd9poVarb6bd82bgycKx2ynZalaYX7MDfbsTrB7atOkPjqCT7EV1qpVs135Y4+grx2BEcR1xOawwv564FnorNNf8shGuMadE17PHaVlhHxx521Wrlm9hbF8qudO5o/h9cal62Bf8OiLurMAfR1Ji22kjQngIchbtNWjg8PiDV83h8QdWsFY2oVepBNditfNqqrqnT5gRBrvmjayOBn5y+W9R6rPbnYAV3eEGC60GkQ29UBXXHN/uw0gl1lQsSqxlr9VtuoCZGSin1LJrx9Onve52O1EtoBNjZi3wZ7iujcREe52vUVSmUdamRW9Ey5ZLJq6Fur3ZCCXY5aDZlsuWlZuhvQJL7dpV0/HKjWXjJbACmeUTwbj+SuhBfWnljInWzoEP5nG5ZFI/65lsYa3MSEWoW1aHhWW45hupN+xmwzXshSlRM1mxG96zWgnhmdWyrZjU7PKWSd0zb3wZ62VbgkC4ZhveM87Q2LoWenPNGsF7nee55/T65PjZGXt9ws7e/n76Ff5nv5+yV+ztyfv3v/9ydMjevvr1n1+Z/lYZW41Wtz5Pjgb+G9+KU7Tk5IItl+fF+UveM1zNzxfFhRkIitpqryfYKMqj7ZCoBLuBJtn2Wg1b0eqe1VL1mqmhdXIFUa0yDTLEo5EqsV4QS8FZZgz3HA5NqhcXjLdVfIBTvSgKt7DAZ840Uu33Fm36orhY7DeZRxsNMZuxBdkfa01LD/1ncitetdWv3eDgzwB4CQTWDtvLkVuQW6HYq7IctkPDdaccO8QWQv/cyoaddRpgR24F465JVMaAZc+agbNec+3RqBm4hiGEJYr4RwN/mXkxq8ro0n/6CXcSzbITijWyDcxlKwBsAIPu/28zOCxys8A7meXpE1mjgQZflvdNd3OquQoWM9tYsOdWYVMWw67iWrznWszxIK0F+/758xm9Rxocq/do4HMhAa8q9IsdHLYD0mnheFs7jZgHsSBkr4XmoTlF210uwQyUZtagM7ZToha63OCcumP9ldyx1Uq2lfjEbjayIYoABylbtum6q+BBzEaKyZEBR+Pm9JPojejFZBqACsBZYMxA4Xgk7RbvzNly0+BvZmiwZEvJeVUh9d6rwAhqxxXfMliS9+yBDIYaHb3HiRWG4awp8M3gdREEUkOMYk/AOXRAULWWVRPsqq3lIlRHA1jBao8kgXMD263PoS/lCdbkmWKfOwSV4nnmxTY2BjutZQYrDtAFTHIDS0V4/Jq9IFppqhxZRwb/V8jaPE9lvVwajogArRBVbyYGW6qG7a4HK7vp1BUVVCxkdG8Twd/dj8UOenJg82iFxgP2KLSeV2hNFVr/SYXWVKF1UGg9r9B6TqGI2k5nNqIetjvH6jnpZZOPzxi0hq5tdxPD4duuuzrDPaCzgu3eCh2BPcDDTpSyliWq5xtvD8YQ+gXFSkAyBMuIqkQv9JQ8g7p0cR7XS940veblFR3sj/3Y+9JO3l4f6tR2lWB1w7cCnqIFctmERI7I18uNShgA02ptb2QAwGoW5GC2HJQSrTkOGdgcb28dR15qeS2MM18uw+AeRwO9Zxu53gjFhp3h5kQVWPm1TOV5fuETGkfyUYJdplbCHGMU0Frx3SaSBJJV12nKCQcVxllAG/gFyHvgvdzIplKitRPdxzon7Ij5AAtgEEVqjk8Ux3g1/oRqNYJyFtvj4kQFkT8GYiGImaxhbArQFbMBm5rCc++5MEl4R8NkI+gw0BEiYzQ/DK9EDeDHZDu2cnvmcSy+7x3L9YMxqzcgH4kGAfy1gjVOx9iSY/R5Yjp+S4BV0DmFfwuLxfCcG1PwcIw1hzR59/7k5OwgwZ6i6QVJuEJp4i5JsuTd2fvDw4MkQ2ZOp1niKVZdgYLH0r+Z6Ab/3xNAj0+DMR2XcyG6+LQLuTgJhwTMbxh6Lwhnt8Gzw+PXuMGZcAoGxhj2eXSMTL/elI3mg4FgflqsHYSZZmK/ATqdowobnkYLCCiXirflJnWLzMwqMjJnBhMsIjm6NXrXbKs+qUnIFXuW8rZrF89IpIdSNSFsYQbkeXKQ5LmZ0b6QeUdDEaTMIr2GzgNTFxKYvsEEXY4K5Nj+5q2C+dnuXMpqNxfmynza7lDH7igLgFJYfWYGEwqqRT9+X3ziO4zQGEj250FZuNXuEQFJuUdWESKLFbjLFSwwXZBoyzvRiYhpRGz8LfgV398FTDTCtGk1DcgdqZjNyBx/2wvymHSj3fqCOyYcA5H2dpEeQgCeg1rxLQEC73ADCIR03aktDMw92deEQkdagPFUuhpSFaH6mEziyX6S0JFO4ql7JlkuTSxhghU6MdIRrKKJw+GQNelD5/TUfP/MU8Mz2bGNprTm5SZUqM3brPMx1mC6pARj9ExqvSA4/fHT4ZuPn3754eOnV4fk+XXisiQlhh4qirb8wppOY250KVgrS0zGf/s1gsJRKZ6shUOx2Hi1fx0fJJmrhaO78oYOdTtvz8FzjZxjqvl6QU3fVbyNDWO2VwfrdXlaMF7nqN4cA8pCf6sazdfn3wJgJO+Ojg+SQPwHEh3FBbRZU4VpalqihDHfXVigo8TvTcacRzAQmn+4IIlzVBmf2f70pFSz+aY5HFVkoWSnb87cvsjOalJ+rau4+jq7ObK9Ws9tj2yw1vEGH9riniKpNdEb3lz5KB6PgQtOHNFeR+gcsj1yPMax1skHiJvu58/HG3MmRtVJNi4kUoCNbXKVfRlSR9gZGLgmCoSjJotSlmoFFdyTb6EJT5TtxM7V+FWDQWkI5OjF0Vpo2dYdvQKC99ChHy79nVjeD5cOKEycJq4hjwyh055qD7lHgt2kOCyUctCy57ww2TxRPA14Hl2EtLPgBYafxYUR5Obnz5cro+XSWGu+dmkcTLfzBUx4yejtFRQwXCO++db7EW7sD3Fw00ZLRcESEHkSO28Un7UBq/302yw5TRYgCVsqaG6Z+CTKASvAIdOiLODCEQbb2JfIvB8u0z57kb1Y4BpeJqPrGxg5vTzGKo/rEh3IqADbUzOKLWP+HMdY1PQiEhCcrASi/UDCioyhP0ZwrZMcb8BhqrXQjxLUKEoi8kvJfUP4VoD9UbCaN71YjMT5CIk/SuYsCtmiSmyf4QZI+P+FizF/TNHe/0aqa7Q1hGTz+4avHB7aNnIv2PPJbi2uUg8zZy5RR1Ot0t3uIqfrijZlIWUUNhJGo4zUZKMT4RmCT0kfEiOA09BvorygYxN5Rhv4+sVFDEfUOQVGBHuo4v0zaXd+CrZDAwPZFObgFAU5NmPY2ncuJ4fRoHNsvCAAqPeqbksqiEOrZWPAncsmc7iuu6ieGYIjGVlh9iJbvohiI5I5GI9PbUJekG8SCDXGGO9uSM6BMhmbSiSM/emX+btUgl/tNxIipS2/EqwflHFfcDQwWAMAx7v7G8HEJ4kZa3wKdxyLwwHUvsuS2mCaESsWFbuRU7Wj4s19wbkEdqDOMAwqwd2OdTYviySKRwW+t0ALgS9GEK5j8tHAp5BHLy7Cs70EITOEth/nb4u7SCOU8d/3XQ0DKM0Nw9sRShwvmpHccDJ0bHAjbHrgC4UHIi57dELghaFHui/rDWUWHTJXE0v2QmO0B/+yKZrjJ20EziFrTMpGoT6TUpHSY0iUxb5JQmdZh4+2/ihYQj9TS/wnLVXXPjOlH7a97UVTf2XuwuDTLEj0V1CVVDUv8VM3F0+uEpbngX12F2qpHiq7NqgrKMrcJVgRWkQEk9o7jNyxfZnXva0AXedNt04T/x2M+3BJVAh70eoXk+Tgf1BLBwjnmQFztgsAAKcoAABQSwMEFAAIAAgAILNMVgAAAAAAAAAAAAAAAB8AAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvcHJvZmlsZTIubHVhjVbdT+Q2EH9H4n+Y8wuJlE057qFSpQi43l1BXZXq4G1ZRd5ksuviOFvbAbaI/u3V2HE+duFUJDbJfHvmNzOezWYXheTGwJ+6qYREfXZ8NJvNLiqBsgSrefHwrVWFOYdV00jk6oA9Fwp/wL7TiCNunveOIIPxV6Ph5fX4SDYFl/Cu2PFREFGNrrkU/+C85bdNqwuEDDT+3QqNEcvzElftmpd8a1Hn+U+H4qlsOYt9wHa3RahaFUnzy5zMC4PlrdVCrePgUAZ6vtVCWcj2KUHQeYbMPwOxbspc8ZqCNIUWW5sGSpDYcqENZP4ZiAZtjZZbvpJOdfQ5pKLQyC3m2y5Jx0dlc3wEPjx45FKU85bfrP7Cwt7ttkhOXpyJzOoWk9agLrnl7ut10NTYnyJdo9W4FsbqXRQPIuV6Gl8vPIoyyLocZ+5BREr7lmteg7HNdovlCCWeq9G2WsG85aH858SqWlVY0aj9Y0edHRcegM8B/Xn3a5/8tcu4Z4jKU+0GFcxmgI+od08b1Air1kLNhYJi06oHAmejctnwMujCvvvOdnpQjCDfHefHUQOg6ny4F/86m4GwJwaEoljBVwL1DqohsMTF/CTsBp423NJZQGMFooQnbqDSiL2xSqgShIXVDoQ10BcrASNUQQnhFjbcAAeH2UaRNLcgkRubpmlv6cvNHyd38OUG7q6ubz+4X7i+hUu4uvn+/frz/CtcXf76+wcv3xWitq5T1ws2b/lvvMZb1xBsCbPZYnHBDbhgzpdLr0Zlqm1fJTqmy4ZqHFEjPBFLKGN1W6OyBiqhjQXdqpBVSlSeWMqg669I4zoeYcR5eaNVFgTXyMZL4Kqcwj2ycZaFwAY7bwEjsuFkkxMvl/H7cPnfgBlBZh893aNDkk//pmkewoToR9+ox4aGJUkrak+aTMl4KqTRoB1IfYMSj6KN4nH9nUnIDs5F0yfuK+6K6yRd3btckMxwxj5AGishUOjdBmpKHwPLRdvz+tj7dutmKpdyq7ESzzQtvfaCEZUtIQN2//z12/3z55/vny8/srQf5mnK7p9PP7IkaFguvLEDtbP31F7HcUihsEZDk/iFsWRs4JQlp0mn16diMr8pZ+8of3pbhyIdaUD/793AWGdacVHu7afo5TWBlzyvmxIz9sBe47HKGq1QVTPeGfQ93Qz4iMqCcXt4yqG0gGrrlS/6BHKRU0tIZMDTgMUJoHosiarzlmXASJVN+jqUYfGJykhfk+0yXAKiINm5RmlwYts73rO+Z2Oo3MgKzT4PQFpHI2BN91yX1S6f0VnCKnXL4qlQBVlXtAVJpfS+HK1F6r5qb7CRztAVC3eiZZoeXqwiZ9K49zggO00dlbJTYkW/gTPysB8RRXkw2aAH6eJsItGTXY2cFTXa9vtJDuLxZGCOZoQfW+MJKqrhHvdvBmx8x2T9giobdWKdGah3BmXl1p+owsVP4iPKVJjciLqV3OF2SLVs1hHb9rdf8yBo2rsFNsj7ehIq3lQKF4ROj0Ga9oGH65HrOoPWdQz9JBCNLtrpcLmno1ZcGozdEmSF1B6ChWaTFP0HUEsHCGBZyLOSBAAATgwAAFBLAwQUAAgACAAuI05YAAAAAAAAAAAAAAAAHwAAAGRlYnVnYWRhcHRlcl8yLjAuMC9zZXR0aW5ncy5sdWGNUcGKGzEMvQfyD4/sYRM2k6UfMIdCrz3tsZRBGSsTLx5pasuBEPbfi50ZNu2h9GJJ1vN7z1LTQFQaL8liHlkMozpGMh8ChNklULnKgRNcHqf1qmlgZ58w0hWihiODKYYrWDQPZ5w0ghD5V/aR4QWJzbwMCclo4H1lOGZDrxeOCSRXO3sZEMg4YuvI6LVXsahhV8H+hJwKYiTJFP7BDS99yI5BAp3Mq1CA4wkqcHzMAzmaiopp8dkzNDqOXob1yp/qdyrsMLBFHnyyeN3uDl337esbi32fB2FnlvUKCNpTwHtSQbu42j533aNU170WwCFket59Plpm2uJWLoEbvEOLTa+RN3sIjfxQfuz/RAW+cHiALfXfuKecOD7glvqO+yhH2Vdp78s2vEoZ60Q+pu2oLu3g9E45O/7xNCcvX35+usddr/IsYrVY2gt5u2Rzp1pgcSXUOfGFxW71bDez1Ga/qLdzrM/+Z1UtLGZer1jcb1BLBwjoJ1DWcAEAAOwCAABQSwMEFAAIAAgAbBblWAAAAAAAAAAAAAAAAB8AAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvc3RlcHBpbmcubHVh7T1rc+M2kt9d5f+A5VU2UkJrHqmr23ONZpKdx22qktRUJrX7wXFpIBKSsKZIHkBK9jnOb7/qbjxJSLYnu9n7cPNhRBJAo9Fo9AsNuGoKXrGWS6XZnH5PTyr82N20gs3xx37SotuKjnd8WUFR+Hp6cnpydtZtpGYbrlnXsKVgpVjJWpRsKVaNEkyJ/+6lkvWaNd1GKLaSldBMN6zbiBtW8Jptubpiq74uOtnUmnHN5LpulCgB+NnXiNLtha1wed6pXtw57DrRfovV3/V1AeO5vYN2bMuvBJMd2wt+xa7EDfYpO1Y2Qtefd+xKiJbxmrDaSy3OSsFLhwfjqunr8vQkHO9k0Ft+u1hsm1LMs6vsbmpRWizeiGW//qbkbScUmw8+2Gpvvnnd1Cu5HlWYLRYFlhB5z74uKq41i6p86ETbynrtgQFqbvRH28zefPP+9IRazBaLkj+03ft+WckiaNr2S9MUG38PE8k9CRvFiGuaVTC/E5wMXpdsx6te6JyVQrRTwz1m6tnyBhgEpxf6ZpumuSIM16IWShbsJ3ZO4H+xsKm85Ypv2Yr9RK9KdL2q4Y0o5bDzczlZTU9PGDMrYGX433yVK/w0Z5ltmQFmNZSxIftdrC6hteoFFItKC98ccQ3brhrFrvIdkzWtwclqysqGykLIk6tp4uPOfBTApO7HjHZ1eoIfgvr+cQrTFc7hzJfBAncvZlpfb0RxBXQIplYOFqklejwVBptl01SC16cnrrnpXeoPw0kwTcZ0HY8oAQSHRvOo+F4XSrYdDAkfbEkJzM3m9Os+rkUn61Vjv8/Me1hOT0EF/BCBbVWzxS6pTtyFFh2wsSs1716UoZicmwf3uey3rfs6gzdXpHEBmhLdL13BqlFb3vkyerfF61ikryORTlVaJWtoj78BTa/bgldABHpwesOAimB0RVMXiAV+ntGrLRVKNSAd8dcrm0oUiDc+uI5RiUAH5imcZQH16cHPBeggjZTGJ88Xtbju+rYKYE2yxQInhJPAWyyeyE6ovpPVrOp5Np3ZNg4GULOS/yO+6/mHplfFcWjj6gTXgvu7buqF2Im6Wzj+OQwNahu8wjYW2I+Cl39Wgl+1jaw7fRRUyTtuGIQADhq7idwowcvjsEydeGSl1C3vis1xLEyluOmOKwlcc7xXVytuLEC18O74tNhKcdM331jWP9wSa9hmrs96B6r87Q9/dYbA2x/+yuaslpXV5GjL4GJ4QXTP6aXut0uhclS771XTNUVTzYhV/HS8fGkBL6P5taobgROkV6F5VIq221g8XEUnlH3FhagBm5LN2YpXWgTCtK9rWa8Rl9MTUlJUItmcPYVXJ9vDuhOjpOSKSfaCTazNMwsrgZ3w70+fPp0GupEhYMm+ZM/sB6vaCDNUfe6JeTyCqlYPx0oS/xsTIiLZQta6U7YaKTdNC90K50C/PWYOX43sEDCIcUL1hLpAmjn0qL9XnuK1thJnLFdCCHLlq85ZNp+UDcGahkaIGTPWUwJsH7+k6OuPYmXA5kBQP6O+UThvHr3sj1CWzWauoocolKiLxDQaiiKrDicuMA+CBXBhOryMZjacslepOQPFu+X6isF/UQnNIyua3is+N1nQbKF4N6J001kGaVS8mBqVmOKAZEBJx3IRKQ1CWaGy3K6DBLGyooIK9yyuI9YidXBv++HCieWY6oWTT1K/6bfeonQOAnsjNRoKYMSArTMppeZab5fVTR5MKnIl0nvHK1ni4xTtZY60BKQqqTt0LMCfPLhOf6Gfi0smrnnh5qjmW5EzMVvP2Mfsa3Ti4NNi8QTAoWT/ODZXyVgu3dBCHjCK0jE/ehAxj3TBaiS0woUY0uzCsHTClwhgJB2KRc64qeP8Cstz3rmIOuPj3h4nMZdVU1x5B+24w97XUBOVTORa397lzLjTIDvIoSau2Svehs7HXnYbMC34srKuoY59w3fsnKW9wnfRWn83nmTCzzt/Fl9w7YDUTg9ZEtGwmqpEMvgvXiEKhDibzcwidPRi86idW5Cz2SxYpQNwBkEPzoJg83Amhh35qTWdGLRWCGka9OdGTA8hX7giahwWGahUw/GMUS9Xsl0o0S2avjPygAqoLvElzLQSbaM6xlkt9uwj6bSPDM1c1tRM1J26gUABZ1sua1Zs+vrKakuaYfTh0Fwj721EPmL2twByAlWmkR5Ma1WoNwsWs61emqXjBfkxVctc/QNadtyNWfXg5010/ix/NsUOvj4I9hZFG6ytnLUczb7s5+u3736+/vN//Hz9n89AG7O7YIk71B2QELIZJrqcRnKQroul1WXUyDZTfG9dV/il4cE8TH1NU8FTY9mvVkJNTFtX07Am/Bt5S7f4Ms8I/yxny6a8md8yRxQ7tNx2hz93d45+3nOfTNnZGTjEoTbq25J3QuPYhShFmbZNDpqKIx5ctgtce9Fc2/DABP7LR4bGNOgLZNjFBQKWtTj3oShndJwNI2coDlrQCaDh0JxECyfdGIvmz/IYCvvSGveLJXkC0PTXZFuwGXLGqz2/0cNW2DkGlZatQ6/jsmIYW5hUPZ+ys5es6jlWhY9fBB+MqKl6zl6csS8IYAtxS0DFrnvQcrwFv+A1+yPr2x2vNHtpnQTp2BXB100toIcvoq8EIPxsuv4COsZSXx/c3D0oiK5p51EZY5OVrDqh5n294XUJdIIwtOmkZu1rXlV/k93mQ8eLq58UL8T3Qmu+Fn/B6oqBcSh4aSV+30V4InGiLq0tC8MiGkXfaWBhAeHv8AtQRyWioSX0ez+uUzPBANBwlwN7zvp6L+sy8Eu7hsQ6LrUcLLunXvaN6kN1G4ViX56eXF66tUdhPeRTr/rDVUlqxC/KyKifYKl3brzqDJW+E0PGzjUBQxMrnDzPsw/Vqs88GKcwnfC7TAOUK4MfyHdY1VlCENvg+HwUH/XgA0Ftqyc79I6HXbo8mpfo7cX86UDEjwILtuCweO6athWlk8++CbAl103N0DAWbZaHZRRY+hZGbWNMsOO0oJeoqhfpA6HuP1vRO9a1sW/lZDYEWAP/LdXO1oVpg6gFVCl6pUTdwSdfTa4AXkzIwNU/HjoImxi7G1BbXkAfl2EpsO+oF+iHPYXAveHWnD2DNxuUBkGy5MVVzp7DZx5qwBiOIYziW4Gz8pW1IoKOjHiHkG8paT+tLtlytpHda/zU1CmgUv9Fds6ojGvAqAJ44/E5I64vCqF17ur+KHRfAVgX8bMP39adUDWvJmY0eS2rPPMDz/Kgy+mwO1hA1BeObgKG0aDTaRJP5gYaRLP8v2CNBh9G1CAYA7pa0sAkNHV1Q+oYbRdPuz1s1jp/wP9DOGADT8wTSONpGIRLU3oju99G4xD9+8iMnrXrkQxiitlknhiavWAeq3/2HKTgI7tWzdooxwM4nJ2xlistEHMKPAdtOIyYietWCa1x262mXdGiaXFXFV4OLdPAEEcq5ABHhzNEqhDnp52EyObRVFXNmiZqOu4gcuGxg/x2XIsxE0I3EtJq3snUO6M4UaKOBfqguclOyKLt6e+a9XtAj+Y6S7S/mx6izI4rZRnX+yCFEmB4w+BvcUx3Oei4BBSzWTBr+q7tO3IqU/jfUoW5mQnflwuFzh0qs3HhXZIogfcasGmCl49o69+ktcfaO1zVqZqP0OUpnX6Pbn+Ijj+4vgPpN6LQoHL0Gry4R+O2e4MOhXBs0R0O+7qyBxliRyf3E6f1mDn2yEmMp+/gxB2fMkPPeGdpRIeDgzXtDgz2XzCcgGWi5fpJI/gd7eOD/O2c9xGPI5z9hlM9iNplQ08iHZCLyJTG6tBi+2fgMVi2iaXJXs7ZMS/JPwf2lAvohFqp5QrH4h3Lr8Cx7L0ChsXg8lssFs6RSwXjAMxC6gVFRBw15vPsNZlN+Knu2yBGMsQI2kNEYdEoAwcsXoNto9iEHgeAzUcLehqJuRCt4Xp2eQFadDYHbeKomAfiM1p7YWIbZjZNYt1t+CU9pCEOY2AOq3WA1XR6WCEMIqeGXCOBjzuIQ3fcfky7+v93JWCkIe9zuaPV+eucAePEI7tXKB2QBGRcPkgWuCUQbLB9DYmYCnYFq55XcvmkbqSm3cH0Gsuv8l0wqWFKAijVVvDIRh+lOMA/yAic+3SzyfNcBoTt605WyBa4M3tF3g+gtfBuwsKZ5FnEYrsRwxzLWbJDnbpUw9jmxf8nGSxAXgHDYpPQW4E5y9B0Nv9lRVPrphLZYDkeAb/iEkVaw0xHn9rNgVX5/xL3N0q7x0hTvxsI+jDYFEzEL1F9pquM7VwrPwHy2NH+REVyvyq5xxX4R9oMZyObwcE+pFEC3kiLVS9YTdWjlmpdHssMeI+xC4xWFKKlMBTm+DMB0T4V7sKLILEp/L4Vem3zNr4DVpFalB/o3SWvtby44msxysxBebFwvU+wkxxA2p18BD9H3qEQGX1g2YtaVi8zT1fIs4AgEzYOUy2sSg4TZk0tKPo3eHw5f+bDVPDh4tnldD5PZHzY4MwqF0pFAYhO8VpXEINw+DOLLeRUwcrPXmSzmVBqNsteZtNoI/KgGeCoMzAEHmQA0BYWxI+QshFS8GO+gH0Qbf4DLrZf/5W3EvM2TDrAMAuDdx0vNmRSpLIYDm2WkmiizHoWpNbb7nwSDCUMT0S9y7FumAGBsdMFJShDLLyVCBJFRL+FxbZtSjzvQttmWFMb1hH1buZa+9kOP09CmoQdh0M1YUkscdtIEXkug0j50TxFKqAdjFf3bDNcXJ6eOIG5WMi6FgoEZ5xTPEiWsfE8s89OPdl1R28BKQYZZA9LnAzXjN+PMeyDsizICfQZTb5qmCNFO+HEGgbZIDvKt7lYtjPcXoHcmjaWf85uSXdsNJQVk9N4kooNr9d+ksaZZqBxKO8gIPyEmgUJZ4bg9L10NBnkcYftXOJmMCFuvsF1/qaqJlk84VluO2JRT9NUihgNELXWK5NMGRbQIsLRvjp8MiQ0QVBJB83sMFL61I+J7EdzEGKCgSz2WUm5Y+Ja6g6yGrDRH9hnZZZTNw5SlBEVqmT8tR9N9G4ejsoR4/CYrN040R3v/LREKdig/CGDPbF5m5iuoClMlgE7RGS8rtPIDJLBsWAoiY7CGkim/4K0PBgMD9NqGhUYCyvVbEGqsqIpxeONAnMyLZ2x6fv0+jTO2humzqVUjrUgBiwWmBzZltc9rzJvdXgh8ehI7PGg+gNddnLWLdsMffV0HmJS4QwJOZjgn4TayppmmPIwtHHOUvN6dLI6C+oByh9rGEcxyHJ7+vP127c/X//p6c/Xf3pNttFg7EfG6Po/xMOUyqI0qhI8BPXEHIqCPNVWqCgb2VhN5mzX3zZCCbKKHefDZqyEPTj4EJ+n67VQC9PfK2/q/g1EQq8hRqTNOax8CFRWFaVEoRWOB3Qpk4ivOsxurztZ98Os+GHObNrULni/3nQmpymPsLRnFwxFbKdkPZkxAiFCusVZOkfWu63ozgimKiGARM7dwmAdWNTHZUCK944l/5gUr3nmsp3IYfgKBN3znGUfwsSgBwYTTFp50z4+knB25vOuGK9ALtywdQPZtR9N4tlHSKq9N6ErcDUDRKBfGvKv0ZBjF/PREYXYzbT2IvS9F2wPq8elJDY7oZ40fZczXv691+gBG6MA+A1I9LlmfOmy5c7OYDVAcmepUOjaU8bdRjV7k3T9OHed5geWcOCsBzPw5TNzbCFcJDnTsoaTIr2yeYbEaz7v7uyMnEhAjsuKxEsD59bNuRQ3JSHgT9p9cB2ipaH7ZafgpARkDgLqYifUDavETlSsb1nXODpRPlOC62Ms0JkiWA9mtQdEQTyNKCV8JQ29fDZhgGl4XO2rUY5XXxfhSpY5y1ZRusN+A6dOsJ53Ex6IJiHKrupmXwfIDcJXZqGsRfcWqnzHl6JCv4oypmlyUP8Od6MRumcSsG9NRMis1Eklr0R1w5Q4g+45JkHyAtJ5PToOgiinA9QQC6ldF+MA26EgqvzyWST3DgSn5hScSoQuk1kzQe7xQzboD8TZk5M+ihin92nPTJZzmI1apVjt+YNY7UGcZieCIMyDs9iHWSM58Aex7MOoc1Rk7zSYfGwr15sOo2Z7jlFKqXNwvvcbWWxYwTXc0vF5VVmTRDC53YpS8k5UN7mDVgm+A6FPZo5x35wqQA/FLfehXW4MlUDzD8zBh2hlr+8OC7tI5a5Fp0HXGmul6bvHqdso+O1TjKcUA5+H+XufEOA+FtqO51GJM7SBvqALXb5AlQVEDzWPV7BWSuBtK59rSIlXeBGLuG5F0dlbYhqTyQZEuO9U1DEtZ48dBeWhiWe2Jx4wcXVjYfGOwQBAYbnqOV4lg0a1ElqoHVnxW5uoV9/s+U2M08HzmtZAHZ7GdP6IMVUTp6tMydCBGdY/PUGNYo5zBmFLO+Yw/sjm1qAPqGPseKY3HDLIV3ioFXQGGAcC5hD0GfzingsoeHHdKTyeYVhr0EccBg5GGxb4IfiA0keUch9h/7TihaBxwGSVUsFdEbHj0zW4Gip+Y5Mlx/sPKNxSxwNnsxlMZeryEpuCGpXx+sZkLkafURD5i4RM6HmG40CdntvDezb70cpyKnXzgd+yac6o/vAClBiyjTB+vP79CBYty9+fohHRYgv7gRSmj1ke+bD30vs6JDgr0S6Hk2FIPiV0B6SEyzVg0axJMUXahdZhdM6fYuF2jDk5ty+9I2uQg+N9OnF2dnAT1QiwOaZt4UeAtZ1Be1Q7aH17YW5QoctG9C+9rDtzqvry3IK78+AoxhVDjA5olmwAUUfOveG4V6NDPIMQxSvfwEQpxkc9+U4sInwmssxXVjWEBRcSY5ar6ITsanS8z5DEDt8/OUIElNje/Ci2TSd0RFfWNlpLOARPp1nNlsoEjrM2daeaiphmem7qs+CsK9QrRd3JlQSTZNnsMEk8m/gqUye78VgXgYREDiZrc1wAFhldwyY7mwKig0ZbuVZ45j78+KRgwTl5VjTbLXe7ZWivyG1f0al94nLNJlzbitpjpZAqMx/6sZPhQmsBVDi3QOklyxumOCa6QN0cb5zDx9m2KReAlmv2xHQ6BqhbUUjLpfo86KipF0CgHB6qhpf4QPew9USNhdn7wJK62yw6WVw53vgOLJce0w9YBd4bOf6hy3fgXNpAuiZiXK8IYnRo7aDDaE3cJo5R+BUZSpKL4ZmxdCTBXpoRW6jDlACK1HRs3/QV3P/Hakm2QqvEWcGrAvhDMPJZwA1Y9h1tKFnL3t8SJ2vGAxMUOMZcMsU7SATu5Fbg3mzR9byqbuimCNinwkv9qtIeKdjyG/Q+loIVjQIF+Ae/E4j3QGBgcsXDGxPc0o22BeEmD2yx8jVd42nkr4HNCV4azu0464qu3TDDymYzgDqbZefn2Wy2sqx8bwpGaGmGYupHUTSqZNxNZsCPwQWHdekuygEv3NHesqC7TOH8MN++gisUokOWwIx4Bl2nYrbvSK7fL7sRZSu1UWc7yD6IOqKuZ+CAuwf0T1SYs2xiLF1rA2Rpzz/Z2GGWiKuFTOHizeFatMr3wkG5jNgoqA4zFrz+eoC9Bhl0P6IZCCvM+c23rq87dush3lH06Bag3mV4+Oer3CXThbf/3MuYyXGZkz+xjjUfgp1WY22FHGB8dGeAuZv9zHbZYqH43twCZ+76Y8ybMh9INQkUx6hplgLogPqktHZvxxXEhmGzapJhwDPDNUMnrkTNlWymMwMS88TJxpMaBYy5qobggYrd85tZ6gTywPyhLfKkFYTgsac3vOODfRJSxYNlZvfWWLypFijOw8kbpFehz9wA9ysNBhhtO3/flBNTK2dZAD/LmVHQACk+pUHJL1nBa4CHjYwmZhAlyEaXFE2HNyv8YygYX7NyeHs8GFZAnWj3aIUH6kJLEt8uvYxKhStWkwDQ4XskBlbw2AEiZp8Z22ViTVu3DFxJLE7zzHy38iyL0h0OgZ/+BvzApErjhyUJ/OD7g/FDIL8Fv6Sll0Y4XTUxgmTF1JAs1rCjhcNe9fUErMtz9LZ6TMvK2QoUMTHi+Q/d5idZXDnWnv5i43cjQItzW3SMANagDS4WMpuPEg6FA5+7AKu5iI6rtXZXdU6yf8u8201CgyrM2bNhsA13pKVmQuKd0B9rWX0EQ7GvlVijgYgbxsamo33sjWr6NW3toRwJdne8k58YD/wXRwMdXs8DRzwYcHAJdtiadkCpMDhznLSUD6OSDxjFZSgFFSFRybJJjhhMhycmPB6ja8D+cWjcfqbvAkTo/lZqnuXZdHrvtu2qUXuuSj9p8Q1USewsCyXkYVL6mzSA+OvF5UAS4EoQ5/F6sXV2XHG1tpfXJpYQrbm4i9wsxwHM3ASb9TmCmx6BZ2MySThHGurz4WCPwRgY1jYNySi0Ve6XrEl7RSLjBQ6aAVloq4u2o1Wz1/6uEqmtT+Y2R3BZY4wcTACo5neJscxl7ptwUbjYwjtYxheVhr6sXliQkfyBsbDgkp+VhT9Yrwi94LpLslQsDsSus3dq2TVCjSBrMMQ4caN3DHfkIrqTSrvDl4J4q8YZ3g6haBd0sC2aMs/TKy9kh0gqJOJnhmmmuSfGZ9qLCIPadBpwlT2V5SZinAlvHDc/qTE1jNn4zhTC3wzAqy2WgrKg9pQiuZa6E5gCpGW9rqxpOcvy59N/BSmAM6aHiJCQ2v8CGlA2dBD4IKwjPvVkcaHTwVHg2Ly/zbI8+5Z0N5ne9FclshxHf+cwiXe/EiaJ9VfsI6mDg0aMHb0//jYh98S9j6y5BzfxZzMwj+N7W6wvXE0MI7zwwZyXWTp87BoszO3wzp4SBi2oEfq2si7Fdejd5l5EknrrvO4KP1/R3kv8cec/Lha12Fvozg/s4Bjj1Pd2gfc87oLLOeLbPLIX3/X8z03T6Q4u6sQ8fvZeNdc3L7O4Qfr+jqAx1ccYerTBMZjqPKaVsfvdrYM25Iyhmd3MvkZcFtQZxxBsYR6HEQwBU243FmxE1d6Tujj+Owkphrb9z3hZLswLMSZ04Zahl2D3NBjYenBAkuLjTzI2mzES2QdsrsFojyAL4cydiLq3jkTYvz2iOcLg4KAOAX7c2rLgjqyuaN5/h/Vl+3vQCntNld+rBnZNG/UpC20I49715igypOBwzZlYNq04eonWmysfrzYqSq81Kju44lb4N38O73COudVsPsE6caH7ie8Fm2t74s7uAlz4CjaIqQebCBSK9X/KBcGENy6bM4WUzXfoz8kcyS7GbevsQzY+zetTgMNsunuiwn7vwY/N7kCYZ9xeYYXF8w9k/tfmD3fYK7o17rDAX+6pzf7KbHhhDK745w87l53Y3vA88pBpS4iwJBMdZA0jbVLd3MMXzrUZ4X0fzEdIMmp5RIgFy+l3EGHU24MEGBHtU8QWtRxUhq1tQacR/X1iw/tPzR9uyVlw5cVF5uZBZ4D3rZ8oXxLeuXWRvVB8/3JQOcfnH8gVg82RnO2kgu1I8343gOH4xkBy74+B5C9vvk92Wyw9xyQu8R/xmbkYLWSw4VzSDNq/b2YTDtn3TdlXwszpsRm1LaKafjrdypzEJkFiMi+yF8HpS0PW4MtjCHuRvXApkwZSkEL5UDj2wFV+enJ3emJ38cP5od2XHCk8/V9QSwcI7O/g+xMcAACLbwAAUEsDBBQACAAIAFyKTlkAAAAAAAAAAAAAAAAdAAAAZGVidWdhZGFwdGVyXzIuMC4wL3N0YWNrcy5sdWGtWFtv3DYWfg+Q/3CgPmTUaLQep2kXAQSkcNttgGxR1On2wXCnHOlohrWGVEjKiev6vy8Ob6Jm5Gm6WD9YEnnOd678SE4na9bB71oKqEDh+4ErXDxbrxvcDFvWsN6gWq//QQJlN7Bn+dMnnVUxO4Ws0YlWdqTlZUgxi4oN1z0z9e6kZhCaqgqp9qzjf+DbgV3KQdV4EuRYfAp3yxRnmw5PBxGlpsraYN9zsT2ZtiA0TZ2uFe8NVLAwdz0u3GdeVZkhOxkw0YBiH7Zo/FyRrdeKfcjyHKTy6jGdZBEq95wM9krurRn7VU4Ftmi4aGWc9d/p/NDfsm7AVMQPpVLuLZGxA2OWlMuRe4nDetjEwVIPmzix963hp+xnnMQOawrIvcSuwI80SI/YnHc9+U2Pp0/CoMK9NBjT7j7n0+7mpml3YxGsZl3XG2XLb3FJ3Tm2OC/SBHq0kjQKOM/z0SW3QHhDvvq1YnZcr93HKIfiFipYf/vDf8IIvVPQvCOp5XL5uu6Y1vANleFr14DlpWH1jQ4q33ztvqGC+4cRux1EbbgU0LENdq1ie1zwAgzbFiDYHvOnTwAUmkEJuKd3gMRh3ny+Ojv/Ap4D/5z+k5oTIl3ykO3Rj/QKNQrDyNr3XFDRMms0swIPT5+gsEG7gHqm2H5MERcGt6jSOW2YMt+Rx2EW/nQpSWTw/agaYw25KDU93ilW4yJYKhLcgvRtBngLQprIXraa76xGopiNcNkxDJgdCpeK5TKkFPe9uSP0molnBgi2LEsnZVlXoe6l0Hi/kc1ddf9QaHxfaXz/QDI2YfZfDC16uF5zIVClIc4F5rpAtq1GqshXNLZcwhl4SihgBSNEAecwhl7Ai8ncF56OarnfM9EU8DIln8JDc+GZPJLoK5j/+xI0mp2UN9bmhtU3BXwFzMBGIbvpJRdmxMSPNfY2BQsutFHDHoUBKbq7fIopxRqVkmoC2l+wrvuFm91ljOffqDXb4vdMNB2qAv5JlqOV0bBb30uFDVdYG2ws8FFM5zAIioWSxozLG4E00lXbFYKZkbd9BRYvi6zNcr/22lGEKCd8lNQAUFUT7h8bLtZZrPHjOlB/MPBlYsCaSMTIyPgZzcStzc6FzKcGYWwq//IcVmHS9qx96TSGwSj/wi2QST69uNOLRBHi4sTrCR9IBWc5PPeQrlbL13ZfsBT5o5JG1rJzHGl1rq5HOB1HA10CfNjxDsGoAQ9KdphNXmTishtM2ydFI/KwgpQi179jEqJvYZscwS0hey61BRA+vGxh3wbBbhnvaAvLs2jNSn7YMUOlyvaMi2xSmxQ1W9A81LtB3ASI6JmPUF8E8xH0IrGmLybowQEx9JpkXxz0hd/CCrn53ectbJWxxQp4kY8K1JEkGzfbKd6IuCe6aB4HPc9TLd5CUKjGHf0Qe0SnfUS1zB4749mHNstVPq/gFstU9vxAdlKKqxCfhKwso72yzF69ykobRFlm11kKEWt18DFZYrwNx05az4nNaraRZpgDhVF3lnIhWf1bNN/SxFvax8dMp1ySKE5Tm0Y+Ch27P+1FHQ7+x8d7Z98J5Mc6b/SFbEgzQFSQVYtGukUXWj9cNdI7xoJWbwqSu+OeHjYLN1ysilXuEA9wIgitEqlS5IPF/xgxTSKJo8RLMcuPHMiKIOCzHDMeJzouXC69mxTWGblpU1kPSqEwJBQ1atkNezGrs4pCe9kMHb4ht5K2c6/lXjbrwGKCd17pYUqVB5TiLxwsVv9+7CMfnC/EON4zszsef0haM7Yx15cG+zdbIVXCF+66Ze8gocyQ/fr68JqX5QeNHdws5068DeK+3zHN/8Bs0uvhYyxxyH9fB/aNAzPCVKUGW/ofxJOhEZ/iTtfDHDc7AYUtVOM12a+sn7CdWWgTZFI8pNGkdlHoNG9NoovKAeeAHJId++qz5OP56try1XQxhR2Ka8N4R8w/8fc02PSitCoguyIUe0rRZVleh20/OkenEx6OP7HYvtXp4rpIjKTdlDrymG0hgdWG36JzwFuPVmYuEQlqcpuYuXxZQ2/m715/ca+qZY964QFOX6OsJ6No5nSz/+OlKdT1HuJG6y4w8LNQyOod9fd1Voy9/hO2qFDYjjsrAD/2KDS/xaplncZAIo9dxtJE8bnsGbb99KQe3+hccsMtfXqT2zHd+v2BrFQVnFnynfzOQ2dUf+J3WttOblhHl6VRb+ULFhGlSuXSwszvYOSmO1VHXrGexyP1FD5dgcslvCUNHZek1bz6zD3dQhzL6WQfK2DCYKRtCawIOvmj1bVe/OwOkZ/oR5D+e55Ercd9Sa4K8B2rjVRcwm/aSMW2+FvMpf1lC8Vt6WfckcT/wDVhuJNhXDrtv47CIlMUqc1PCuLtwOBftpl8ak975EX/nkfznszRhF/GBTh+tC64NR2vp6cU5gjmBwmW2P4XWjmiE897gV7/C1BLBwjx98S8KAcAALYXAABQSwMEFAAIAAgAdaK0WAAAAAAAAAAAAAAAABsAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvdGVzdC5sdWGdkk1qwzAQhfcC3WHwyqFOIXRXmkWhZ+gmBCNHk0bYHoXRuCmE3L1Y/kkckhTqjaynxzdvNNJqPl+ttPo27HwTQExRYYCDkx3Uptp6rtFCuxgR5PCqVZ5bLJqvyhGC7NgfwqhtPAmShGud8EcutL1xfOmZHK/XWlV+YypAZs+w7NZBDCg1iok5YTnZajWYtg1txHmCwtgWnkpWzrQCcFsgL1CC7JCAURomWGRJEMOSAJLtXSW8wcvEVT4tsqT2jKMt5koTJJvMtIqiVmPpPP9oW3+3Zi/Iz4JBPg27eL9pDNODj+0/TDpJj6eslwEu73s5ttYhuq8PUhjbmpLxBMlmV5RxQn+RBuMt2mmW3cl8vwqcy/R997PpVCT7iNq9mJu0c+RoGvL+H/g43ilO+hdQSwcIlJeoFi8BAAA3AwAAUEsDBBQACAAIAOGUv1gAAAAAAAAAAAAAAAAeAAAAZGVidWdhZGFwdGVyXzIuMC4wL3RocmVhZHMubHVhlVRNi9swEL0H8h8GL2UT1nGasldBF7aFXkoPpZcQjGKNExVZciRllyX4vxdZkr+SZWkOkTUfT/PmjSRUQQX8NUoCAY2nM9e4uM9zhvvzgTJaW9R5vnYBmTjT++V8JtoUU2heWyCwsG81Lvx2SUhi6V5gAlQy0PT1gDb40iTPNX1NlktQOqRHMI2VstiB+e1tMO8bg3lbBKuoPQJpl85UCqV0MGbtJrpqyrUB4tf5LJrzbz//AAHJhbOtVquvhaDGwLPry5PvS/b7qJEy4/0lR8HAHrnJbWsHLi0eUA/dtLD8BUNAQPullVWFEgFuu4s1PD/FOAKX+Qwgzxmt3aaZz5pYl+vYB0DjU+czphwaL0EqG4W0R5TOCtMaw9nudwHOgMAmBUkrJ1fCqKVJCk3qQxq/dIVnw3YQ2Dg3CoP/f5DAFxTXJ/Ey1J9ViuU+uIsecPqgJgCUzH+USvtDufQzEcY3C9VWipkl+A66n+8wBwJ3Ez4PEXvKdMt3jqznyDuObkkjMS9P4DOlOOT1PjMeQzpu4aNd2r8+9UqL6cz4YaupphUYPIE8V3s32+VZFpYrOSijHdMs7BYGT0t3qm/UQOwmDGG4/D0pJ0GeQneLgg7jiq418DhxYCZPWJKFgjIXMBFPWtQlLbB9Ah1I1pnMtofdDaTpc8ZiRInvwsfDxmntN+/q0d2IkESmze9C23dYo6mVNHjZK/ZGLjEprE1q8EQMnpog8li7UtMKf0weJ432rOXNV6SrfRAXciPWTZ+lh5vDYWrB7XefuAgAV/PR3gz/aMeY9ebzl8erwKtB3UaAXR/Ke7CIBp+gxYM1jEDpAQj0MY/OFYh54JSnLbPQ2di4SO8fUEsHCJ1/j9CFAgAATwcAAFBLAwQUAAgACAChFZNPAAAAAAAAAAAAAAAAIAAAAGRlYnVnYWRhcHRlcl8yLjAuMC90aHVtYm5haWwucG5nddtTWyWAooDh3Mq27cm2VrZrsl0zYWXbtpuMyZNt27ZtnWffnYu9L773X3wRyopSSPD48GBgYEgy0hKqYGBg8f8JAAMGBnYM3PsHBgYG/ltVSgysZorwFAwMDMpSVEEUDKwuDuHDGBoMDAzOSVrnNxgYcv9/Ah92LDMDAxOsl5EQVQcZXPrA+mMtLn5neHQ6MF/0Xc1F+ZO6XZhwUBtWWUVT+9ahepmYcLBGDOCaLnir7AvTUyeWsar8bTHCUZeIR24fx069bHc0vDbfmvh2t9jWywtvc0Sg7SDx+vf7eDKr9XnjXrHVnjaM8NcI2X8HiCVGP0kGHSINOxfEOkGAJC1iAAQCMyXwYakWo37zsEADAnvEVCL6g0QwRNVEkkQPSflHAOiijCLZ9T0jpHCY4K2iOfkw1Cx1eKeaxULFsJjIAHCxcS2KDDg+eBfKEyP1DtzTcHCICOE16DWALpIuQkXIQ2v8VcsKMzSAyRqqrscb1gXZCp2+4nj6CVsVAgu6jkUQVjeA7QLiUuvIsRud1CrTWdoX8CZkBUE/fHSMkGBjxSUVk28QT5EyJGJXg07KLo1gcq8JY3I5SO2En5sQ9yAXEHbzyeWfusM/7R94Bmv42/sSGoCUBMtHEIYTECsVsuK4SuFEhDBEPcM3E4u5KD4GId0AczXcpU6HXBpQUjpHIcKugswwJwixvXtcp+kJsdwJaUI2aewIsVYC9cCuzIwvsYqxy45jhXWCPfMzHvxY6lEq6D0KFAvtQn8iNIOtTNvw07rPA68R74Eons41ihCIYdRINPHNNNe1SRAMd5yU/yyKExiparhuKZIhoYx1gkOrpNaWnRF8zyj9mI8Q/63akNWPCnZ0V/t2TDp9zNGjOcM0oiTtc8gAmxzTND+bHyaymeEqjTHlCOmDMMwrig/nn4A/A2dko585at3XSjkXl5AbkJyzUYukbEFwAlTWs8hJ/2eQnyayr5Z2zILpH2BudMJWPEec/kF2YkZ4rprmxxTA95dUH+5sRZzIJz+r+8p14xysX3sxD+WXBVsy3LGN6HbvbRlfvxdBWRK4C+RIUxifI5RztyayIQxLpF+CnIhdLlvGSPfQ9k56GN6TXr7vIelSW53LZkY8SuCPodtjNzXCG7CgoSCuiyEet3gtf9DEmT/YGVN+F02gEFbTH9AtbuzzOclsPNhQNsoQiB0vdYwZgigeDQ7Ul0AjZZd3B56wHZzMz/TbaBdM3LcDltpZe6roEJajB2EJeOy/0X47DMnH57oaAMciBkn9Ac6xc72TvvjQTyp3Vk8IdmOKbuV+fyXeRuo6GgCtvgGAEfhHIG6SX+nUYSipTQF9E0rRJCUq0Mo02cBy4lUuh4yYv+ep/jbKgaEavUN7Hr1AxeuN3MPA9PJgqVyydBQ7bOvU8f19o4qonVnjHdnB4253lkjYBbWDk/WVJZKRSYvMJ+w6+hWhPuiopMWncWuAqhQwQibn75gWtIfXcdBVmKRGcu0nclgD61MRhDpgqhNSLvdrBH1nm/yGOeGIJlYnHLR29QWtfuaVgbUZIwRz+OfHJBmCv+MG0t05okE9qmsQiPilzLSWR79sgpGSZMeYa6oo0ZmSaARFvrOndVJaESei7W36goix62FODHdpHiNiwLkOxLhdtgztgm/Pgp/WVyNCSggXorc5u9MWb2T3s/UXVe3YiyyEQBfsaFyvWpNC77QrDw845tGHlajPihUE1i5dKcmuqJqaR26XB68V9AlntnD6NPsNnhKfMF4ju6vNgtO2zzJ+suKlDkzCFdvJo+kkTFH+8ql0ahJmhMQIESBeGLXQiEP2Ry3zFXIw124Dv9fe6HeNTkPosazfH7Ata9G4AHecYsXbVtiEbvzg/lnwK8G2HuZ9Y4FgaCC0zR3Y3bLTH6eJpHmd+KNyEgie5cgDCavC1C92irjuDZfPXr4Yp+5E+Slum8dCnVqqTqAcMCf3wCwRnfSE+A4mCDNywMjd/C5E7AA55NCItkMUOzlP+H5pLOXfYhnnhDKYwX3x9+JO9VpQXJ/zaxeKgVDv62xPGTwq/QOkwM6semodMWdmHPwtPDTWiJ4o805bkmrpy09YdC5LvffpaERMSbSr9t3hNErzV6Ey/ChsFE6rpkhgogwDbSAQlQ4tjo4VoERJXccC55xMDa6SxkEumVhfkQAxa8VGNj4dajpXa6DTFKn129scLPf+4IuzDB8B4z5x+Q8RuMHd3jDacBkcKn0fg+DyPrh1N43/fr/oY/Y0VM2hcVTp7ar1p6W6E/enddlLprqvtnYHqK7M3d3QeuH8+vH1A18wWBIlAh0rMaSY0haLNSMZHTMGyJmYvCB9G5wfji8KHE2qJyeVCjRQgsOcg8XAUZTGjBkGeZ9ZDt2NDacxG36l6FxD+97Bp0ipqP9VOhRsRx0OWHkmVClDwbXO76Fl2Iz6nuvrn/hEu8tDI4aBR+uzPN7hMzhLhJEyrw3Eu39v6A8uOqfkpfsePX603q/DlalLRw+jTzSBg7Mmx48YPJAWgDfHCGLGnFu/gMuZzF3Aj/5Fjp4gTly7d+YcXzs9CRGimThavIxjw7HWDbvmvvk8aYq8fzj789oHGXNvW5r4fLqch5DqS/QMJMFKjwUs+kZJPHa+f2D2bxp/JfV+eO1xFdA5Q6thrFFIi+Gcff03a1vuvfTves0WKWeri9Mzx02RPJSkgJQWpqsTMQsYWIjFGZm/iIDfqYgJpaJMSsgmn0qolAhVunZ8S2tQK6WSH+Eim9h4k4DKiDBqFkhpVR+vKSeqoxgPfOeSGR2s9X2YlSqXumb3t4TOnyyjYm4+6MAZnhcVPIOmCEZbFolHNdh2QYHPxCZu7r3g8Cu4YXFCsq0YF5G76Xx4rIoABb62fq5e1FXX2iqqy07IyqJ7Z/NQmTqDO8SdscjJAAKBlSF5RQHU6CaBYH5SUs5WeI6MsvoOKNBOnVs2GFHwUcFiOQZoGM6SWdK0+MmaJErx0PiT5ON8gOVySnrHqTz2c68oKZl2FOydP7AuRC/hwpx5cUHtIjyEvNFAKkdROHZLlK2QsJvIGVHw7RSR5b2b6U/Lhd8C5R/OjbzrT1UF0nMqN64czgAlQl/kdz5WAGxVKpilNqJU4Y3lHqb4AFbUEC2yFG/fMjnbfp9EQYJsZOSoTV1i1191DqxUZVXXaJNIxr60QNIjMlV28kWqJM0gWqG7uWjrjg5Pw33oGYbPMPouBHD8WeMiNCxSzBqYUc5PXs5uoo9u7hQiDu1w5b95++/d0LtKgsPzPKsdTHveXNJDGLCSGHDwFG2RcjKRfdGD5Ghksb8LnNIhCkihg8jgoSAx794XO0isITL/TO//YaWiKjY3hb2kPGksbtKWlBvUJkOeh00BFgLFIcg5bFXJi2iVcw0cG8P3DI8VMtjYvtZRwXNZrx36/DpGxd/CQCh3FM1Q8M+EvCLif/c/TIWAZLzqwuCBLAe08M87TcfL+zeKG1rVHHd2aw7ALwdUkms0wvrvp457lyYeLqjOWlzXNmj4iZhAILYzjhBwvPLzq0pyB5YsTqonSrHHG7oI7U4sfmyc3krskCexj6yLwVqHgWonWFytDjtpozMy2z93DpBs1g13MCQInRO7pp/bBqL0fDha0qzVLfOBwjzWvDnDFoL5BiVVQee7L6KEwW1YmvmLxUrWQ3If5DD+y98Y/1BARQ5D9s5IgzEMFN9aFFtMn4Ci7Bb/at68ng683zD8dvQ1vZ86z3GYTg5OVvfMmYKDiRlKDAZG1GUEYKOvJBe8QTjQVdBBSdcGzTOq4fYdRoXq/J6tyoQr5sZdsJXgmUBk4kjIFfcEmG5cF1DSxtru+vUzp9GWLCbALkuShuc4TAfpZenVHBWWG27BiqzfwKC67qTwWcUEVgEVgBL8e7kUQZt/CEdnaSkd6znIez5XS1/4cwuu7oMsd5IrMlaOVYfLUhl1irPMeA4Kj46OYE16SXX1UUEnfj76FOoZiEmYfygnsKV0IORR+OcgOJAR4mj9jSJBjcsoJCNx59TYafGDRsFQ42YsGaP5w6zjLFCSCzbSkJNYUcEq6FbkcVHFPFCR1widp8Eycj14z8DCWSNG36XUI4sr521LEY1rsDzfhDG2b0UxhS0Z8zDEjd8vIsagjkpobgbpw+2+W26RjREKmI1n+ZluJ0PXLo7Y21KbknNdzU63kTENEkYkD8Gknz6bMjlAGvxoz+p1krkF16dEcKQpIaQvCiqyXjggAFl0rl5ExF873gygjIg+LDgFtEqo/4CYE4sKn+HiS/9BBCUddk/upxQnMIGJUIaJpEp+YNwNH0qgQtyohxtylmQWkoMCMCvVdOR7KLJfhyGSj+ZQlncgICZWtRQkncbee9htRvvtSOlEBV8IrwTvh+/Q+wS1ce9BaVlwdwZgv2Ohdgkxm/m+L0ohETi9/WdxYVc1D/1BrE+Jjemzmz83M4tQCWPvXxbJqYTONFVCQzc4e+eNPDzwyev9A6jyIqT7wuoWRNylmG3mHeYV9faO7EzVmA5RQ+X8gxBeHERK7lQFDUiDEaMX+auNunqwKkFWEGZbvGw1DOzvFX7A8dgGQ7GofFP2UxyEUI+QQggNMdYChOxcHnDtAs+s+P8Su+De8Qjy+Zvlhge7v+Kjrtkn0cztN5Qkcs8Mp0ZdhIQcwFOpABL6XYOPnE/wAJCNQWCi4cPkFRgTiuyI+L34ohQRqFRIOtEW9X3bCQX28jAYUJGc8ci+KNl26cxLEuRdsKWwIbs0PYw2O2rO7v6wQmjBcr1IhxIDx4mSnUqJ0V3SHKmkt8FMMTHvVUlo3vu8Yhel+Dxx+Bth+B/BcWGRCTMiAnf8pKM/y2YxiWHgJ5vf1QWKa78RZyeGLN6u+EmUFwhKpH+SGbLIdl6BeeNebQCLxPnTdxD1mLDrD1fppm1ChmZE880SC3KKJdAhsGiCFJXwqeCqobbDm1C+6poT43/h+INdJgbvOBuimcG5D6XIpDNtQBYQnk6i/ngRsWND0g1KROGWZwZEKmLG6FJ5TN8uLr7badC9DLETsfnUNZCq96+t2KxABAM7AN7q10GmV58ftW+9tJAoB/Zniokc+Fu/tAZ/xsX56rZEHUgnehL6WmXwhPiQpVdT4sXALPa6vncsHLtQzCWO2NQnIK8B/d1kxOILUcllEqX9I9Rsg8IoC8qhkBoRgyl/DGtg4AR9Y6qthEUmMErupA9rzFPTFBaz4u2QnBaEGP1o4rPlSJjJzI9vtFuC2nWqVTxQEH6mIlb8gxibjXIuTIg/syUOqz2hxqrrnOQCehEA+aa+7Rr0QWIMGzb/bT92HNxVOgLZc2edltSZ0lmzJkmi9Jtz9NEtzdToV3/qQscQhGnWiaxjHhwmqTjmC9UiFHhFy06ggqmI80kYEm403FeFlMzt6bpltu4DHilz3wogrSWZZFj0Z0wpxdbr8v6cTNiQqKKWICI3osdIQWMLdJPgz9ptWNficls+ni2Kr6U5/xNZ5d0xZh/KCvn1JdO42kPZaFdgE1sAgSKMLFNy30GZcsXJQexjts9sKZ+i1+qsxkNLWCLc0pRAR1ioLAAUPVj3JELFt8J2ioX250eDvInRbWtb/MrLhMMYBfhJSQQDbxKKQVDkvbol262KpCRxwTeHPB8kcGswa7DLoZDgkeLK6LqQ0GaQj5QuC+ixaknC8u3ZBr88fQKnj8OO7pP6j4vemqfgiGJitMqgN2FFHj3YHyzff9Pz0OLdeT8Yw6He2GMC/GyKGinw3LrFmlkIXIl6+wJv9sQtVCAb5fHVdoo2IGNMw+4JzS4HFOvoeT93FEVFK8OaZ2Zh189Ho2yrNBtsPP+xK8tQLvRqrrAAkiUEYql7wbWcFCOljOv3MOF7BcghoiLgPZy2Ym66F88LHMKS6OUqT/Jv2U928BqsZSehMlV1yLQwsdC9ye5gINMmsrgdDR3wH1vUx2KGCeJyM8cskJpuw+B5jCb/iXqafPwizEvj26pMZy23gRGr3sahQbcUPHicd3nhtnYRE/HVZY9tMx4yk45HR6oshxINaAkCyInnODCnYB7Mpgd6y75l2zQOTdXDzGYjk3WCzQF0efY8eUZveI1L0J3mXC0YQihDPl6I+rbJSofl/oT84XCbwLWq5HlsJUwGvC8K0ehE0qFn3+sjl6JGA/Ux7hAqWh6e7l5GLP/arYrFWES5WjjKhxu4Pqv65oiFnsQhzrh1lAU8tx1lMYdQt6p/ksoh6vgr+5e/3PVAsWLuwWOa1Gb95Yj9QV8fYl/Sci+5OyPs+jgnYJXLQajLpK+jAvSAnS4JHaKec5IiaYSOwpMymYBB8cZmD64GyE6AweLFogTLXZoEU4upQw+v5LOX5UT+gmgabuqg3YwwbVkX/2uiLlgTelftFgn9QRlSpJ6tJfL04Z3rK7GrHZ/J765SO64gaLAtxS6+a6pZ4jkz/zK8Nwg0rb+92HrSX85whQ5rfEtylpLvuHNk7ngDnSWiQUZ+8URWTTmIrN++CyFD+FQIBPU6ya+UppLv7wqMeucZN41jSSd6J5g1/SPhubLSRZLii1F9EZLja5PZ7kiijq1VoQkYjYTA8wcGiAR7FAuhB1nDJUExYSSiVVCQ7/to5PuqBxhXp/iTDpKmo5NzXTGfRdGUN1TmJO6CxYR4JO7SvLatW4s5k+WADhI4jndaOazXXCpy2VKGlHKBh+aH6pmOpeX7Q13ugWuheTtNw1fNUJ2ucY6r9fe3Ma6xFEvczSd9Afl/SkvfC755d4NncRcNU2Tx7CRhmva/rnDrwUSNuhL4zOCuJHzj5jWeqWteh9JzZFr2iUuHFeImhBM1dYVO92hDV1sruxLodznunSTR8WnhLHUg782CUSV3ld937RgApxlmxOVSwX9E/DmAGDX9vOrJ0Ci5qK6ePgvQu8b2mhbsaj3XfyhPdiL2re8Wys1+MFLrSVKdwo9L29KR5mwCof9Imvl3F0tHnHPnuCyIR+Ewqf75EG75dNkYatnyaXKWu2xVsNc3UavNW+J+mh0qQbbizludX74fkbTM6YMspIjgLEOO0/mldycPe5U9if/i8NQT1Prcim2o6Cg+jvHvm9tVoEIZmxl7WUvdqi3o8Q/mMzZsIZrEWuhemTDo599lr6Hmt2a6x07i6h+1mBPPc9cdBnxYmVSfcnB9EZ3WdtDVsgMyAa9sFAuWsO2+xz8iRXEtltWTYBJN+nCiPV+E7MaciJi/g2Ent7hbKdA5eQkrWDD7afbq2HPZnCaqTjnMj3rNGGmpZDjiWWvDzWJCPlisb/3jPL3OyjvrUiF8DOqTU2hNq0LzCH2VF9s7iS6n3RpblC7EFo5QBkeQuola1POi+Nm7Rw1+3iwNVMhYMvncDqLBfTsrCZYhXJY4DMXuw6ocVi6gNPTEQwFc94Wg3PLngzKFe/qlNhTZv+4rSeQvfv1DZmDB3U9Ro2YMhxafFyuwEqW8yEG98WCEk0Hrg9MJH4ISRcnav+cduY5S8TKMdgvdKw76viUAzEDfyMwBenm/4Dj66KMSJlhcna2Kn6YcNNoncNUKbQiZCA2TREv5VnWtSIg5sZrIJdHaHO3PKfGem8R+O3+rQlH/hUfbyA4aUntcwDOjqw1lL6CpBv9SnpPuVU4mJxN+FbA/cOdQ89JnWI28H8W6aUrVwWzQgEvl+WkcWS80czKKo1hm6kZId/YIXMTJ4rasYCtpO9OXcfxYnPT7OA/75MQjnollLkTy+OJr2Q2z6q9yFyCoALu9I3SVh0U5anmdhLyVkwdifnc9hkn984KsrdJv6LKSfdWmp2PKF6EVM/jIdBWLNrlRQAeyv1Ih4WtSdwJJu4dFsasDvANYXKFMFghiE9COv1GQftMHUxKd3Nu1ZN3ZPTg4g+MzAn/w9NktUWPpGjnAj0RrzheW2JSSZ3F+oTdqqbkzewSKarCvPsBE9nXjWy7OB9cNcnS1ZcujyuuNgtBjwk8kKKgwJfzI5bOn5XJzLWSHfjZW1kALpUiEQgh21ntSTBIZKtJMZ9VM0cEPU7oOUSrpsp9wqCOza+uwBtztavF2/LC5dAF9BozQyeV53Jr+mHPydzvg1ejeNV2oJRj+0K2qShXbf7sIgDUMZBbqGwaxVC6Ux285TMVhfjW8vKvtLHeptThLhZzEzP+rMLG5OskHw4wAxksHP93IkL+aoGYC4hRCRhFjeveV8SVF3iklglTym0lVOAgL4fbpT+qFUHJWl1hZ8pL2G9cj4U9kOmPbsh00/tFfznDxUaSkJCehB50Gae4YWCHJa6Vxi3wZ+V+AuJi5zGjaF4xI23Xk2Es14+FU0qYsNBTiZlVl0diUeQDLQtYBwn/EtbdjnbpQqCcU0Azj4eXkHxa8zp06U6cEj5TpJ6aDTB2Dl1gTtsLbdoSwk1LIabsx4VQh5B3OT/OvamqQTCsZlDxBr1n9nuLkkX7gawlpYM78d4iYBk2zJb480oga/g7DOI5HpgLplycSMzRcJumgt2a5CtP6q8dLghYlViCnuoqq9LXdujQSkVA9gRH6zIMzB+Ad7vZfMemCA07jHix2UNes3RI3HTovesRJayFpXu5CJj2hFWM1sEBmEeOEACnGhTMY2r4gMORkGrVwHVKU7daI36FiMSJZS1ne3INFdAbEl94ByF08clFlxW9lmYafjS8fMSlVfRHBro522hSrz4WDAGsZA2OntbW/iXOhFEUISaI+21gUuf0bdDGj/de+YsjbdB74q3dgkp4ZLEWZg14lsKl8VIQ6XctAxiTA4yDAoJQEgtAtaR1DlX7c3pZ6Ot2j91Iu7xB8jgxcIzPKbd893Zl/L+4ogPljaFDUtAxiICf0jI1AwJWJmM+E/ZOk+6kPL2TR1GCludMhEVdeuaspfGutI3WJw0X0vic7Pd8QKqYKTTJNxtK7m1b4Oi8pTvj08f26O696rvSv0VZwR5nwV9Q/qzYYlcQUIov2VbHSlpZ519yeHgZEFZI3osI6qfw6EGUQPx7vG5/VncQHo8lZuE/QvCT0zI8wQoGsoTim4sw7sfoIajYxxxDUx1e0lFtG/2JRJZmykuJE5WPowSRP9EbsbFMms+KyvULtfJRATCkd+cYaY1jORx5n5sKGI8VSbcqap+D7uKCiwXhhKKyyApZabNFdKIA+B1rAfe2fvbEznEoU/t0qPcfOlMp4zhm3jnLe9/pT65GOL4eMt11SVnXwtUDmu1Smj5nhm5moRZTQCHO/DrrpYgmhB2if+XX3xgSDv/OhSzC66zPwflLOMXST7eZ2GjrV6MtPVg9LsYcMWk/TLt8mgFJij4M+Yqnr7iRViaJY995vnsXDkqzOggCi9lboL3AsF355I4BFVGn7mr1bplBBJP5au3Swf47bhrPLyAPcwb27eA25uq5yoRu2bC9PyKfor+d/b8ODyuTEQey6TSy21DyHr8UBMlHiCK3em5hPzUntlUqc+p29qPY21n9AlPI0ClkSbIX9//iMSQLHVaGMl/pwAoWrn3RGZ4o7bAZM6uI5uylp9SJpBF/n5MQzT8Pbf6MOQFaeEp9u77B2H+/3QiyjwH247XMAzf5QKIVOtwC45fjMPaWkos5Mq+w3wY+aG25eZBHupl7L/hwHWGo6+D6voiwvi4NeUhIMqQUQD6WDdnWiJp+yya2wiLGeScm9YKiP+IqM889T8G67AdN+KOB/bbDScXjcA8A8+o1fqCByvC/q1E2a5tprOxWfmXxCr76GGR5KYdNmva5rqW0DImTpo2j95MGtY/DneqCoySQFDAE1iB/EJI1hJGviheF8v2rjly/zu4RgRbP6jBXL5qX5CH0WDv25xF85bo4ZPWDw9RKUGkpjSkcxaJRFrfF0dndsXfn2DlfBW4btEk0z7BOwlAXc+NnC1IaK50QpbMHFom7juO5dYyGT2kKDltM2fv0Dlra2tXcmeeqjedZ2RZzxt4GYlobGBMYjSNwfEFtL35dSGP5oU3pSdczFoc/8kNGhxhF48KNKevCxSn0Yl1uN+CIOPnHQkYN2ikVCzR4qwaZv1N1Rx1GztGXobKrOgIAorDmdH+XyFRBsLYkl1v+CwEMkj8nSFQ8xvduFHDWDCStkUStQ9j8ApYvVEN/x8OdXe6PKM0+oRXf4okyYJ5KrALDEekCUV8rSzkNJERI8aOTMjao0Hy1MTPYLf21xmq7WZPgJMke2cQr/KulrUgYH7pJ1o8NDDBDBZsjF1l9VEUbCmOyOfmz9pYn0ezghKQkPvDHzsU8y/2zW1FVblq0RIU10ZP/weHtwHvZZOZwYq1vHWOLm4IkJBOlC2PBhxmzTjkdw7wChtjitiuUU8B0pKQA8BL4j10EX7yJZ8bHZnT9+8XuOHromwpbAOXPY11YXxdY41GNhzq0jCTYe5E0nysjPgACavr24EobgZ79dxLUFXtAGaPFuVVcWwaMwi1GhpBMx717EbkIgAFA3jJIGWppCFh/BHX34Uas8FMSpP+5bKeKaXZ48bPXarPR+08hbk4SIO7uiUfQOs4lytulPfbecXDiiHDfBZlymPRIQkwWvguOHEzFvyTAK1rqRFZ9aP/aT7VSHOWRJvw2cN7ny03y4D9qc/Xq/GcfxMf/zitP1t/lWQ8CSxYLelvGndKb99WHcYsStmAo2v9AZnGIqtOcw4DylLViILeNk+RV64eJeRcOVajF57aS1aZ0uOFwaVbJ+/dJGitJdZMw5QjFLU1FL/83nF1BircuTitNuU5KMF7zaLPS0rnxWA2KNAVeSAxppZQ4eicGGtuzkoEvoeLBG5MSwXKqUbEG7Ogr91x6Z4IpRqH7OTzstmroAKbNGnTJ2+j47/Cya6CzQnGEq8zQ9lKUIZh5E3KIOptHDu9V4VbMecSTcvkOyfO+7/AO7tsB76aAa+S+7wdBJV4xcXw+qyzPnffBAr4t/kfcGP9dfxqzgUExff8kuPYL0WlxCuB3O4J5EbYQ6PLzNO/XSrqjErPAiZr6TyDkaJhTBJXSASaGRl9Rzva+HnMYCHnlExgjB0pZsc+ePmw/XNF/iJRL+JVOC2Xfw96O0lKOAuA27GVXiQgECd/ZeiiFrNoIYysFCl7ledvJvr7Hb6z/EWXDmuh6vwtXU4voJgxJScQwlp+Ye6rFsyUeitCoL6MHvu0ZWJr/17hG4DX2Nl4QQ41d9K1RHYHQQUPFd3cHxVb+n5Vq+f1mMbH6+lSCt03S22kDyZvuy4T/k3u5Xdr9PeGUZKuk3LzsNzapVr1+mjhkq1RYYGPgk9C0IoWyunpc46xJJFnBaxDCoh/FIgEYElvkyJKwmA6EMI7n9vL0VKDo/9saLU/Y4PI4E4AP4c42SxQy4NNheQT6+qvliSSkW8oRKsBoaCdTEbAoZ/Ny/f1eDV1nZRB7qxLQMoiU6G6n8NCrNjETneZrx/pUYSSYySisV0MWL9Ig0jv0HxqpBxOL9diO1igUTaSBArsRixDOlN1Fym4t7yd7XZL+k7QxlybFkS4g5I/ptprii7ljgufeNWzXtUgNKYJe+UzHrmCXrpKB18aDFW7X6dBf3s7w9KzEWLCaEXd+GqwzZHaJLDhMCDR6GjLAjlFHGuFippprKclyzIlcdicm0yAzsKDStIISKzTpaPV5LWkZS3NkQ85mBRk0VtXp04HKa6bOyLW36Kl1N4MraqjLN5v1Dff2Qmg6Ov3J+X8uOlMEllLhvfP0upOOryIRoUmCSh8CsZmxnW0QTNxJmTd+/XtWrdvOTPapp5Ml/KTl9c2UrMHwc9ne+yp1ds1da9RYLOcJXWCB61mU6RLsG/w9DEQ4NCdsanjCBwbwLPyEZ2TmmmOriW7EGTCxxVA4bZlYEJVTk36hkfpgqauRopWBQU5vHhU6GGERs38oVFRNhW6El/nQYJjJ3fB2YomVT7ETi4CQh/b6JYrnkReQbdXarbK7/Yi2JFgSf4zKRaoU07m7eHiPEvE6xYIp89Xxqw9z4Ns0atKUdOVQE0IpYJT3O7mxVZGwgFIcPZ8RWrRLB81BG1ojwImH2ZpgxglQzBFweNvaiju3sbDy7VktfRaMM5b54cHETUP3DmXFW5RyPx99qt9q1O5xCuzp6frXCJEwaY0yoq3PGujRYzFHQkChcPilVcOOJufS3ManHGH5vRP6i34kVXOLbZaEtfrqlLTspFqAg1A9ZO2tWmWy0mesL4Dph4miyoK/BkQ6y7ZglvTy7JP2dG1AijycViEmaRfjl0NR9qEQidDfOsD2CIqDS3dB8Nbisade2Fxkla1hdfVmeruxqkSu5PRtAkiOMTp60BWafXBxhLmkWzFzSk/Ds1WkZknkGYo/sFctRSeg7sSXtQQm8FwJz9RhJ2x3k92v8W1307qPFUp8/OEvD4ca7Q0KZCMzZndLBQDoW7Ix7MggdgE8wmFfaCOghc7MPvENAoPPr4wAEiVX7kjDxe2K7HvjNXXIiizWC9IgmWfROzADDExAMqzuQtz+Q7dSpe0qyOYqSC1VCAnNRmxx15IZ97vWSYQt0tbqxCtqzdPWR12YXRLe6WCRNAYeuML/GqM/OrZc4rl5uaGyXHUA7kymVXe2e/RZFwqhlN098Gg0PC/wEmXKy4z+4CVwSuTHJgzSLvXmu/zhNRaEmhBSAPzpNIVKaYcSiPHz2tPGohQWFVvxo6K2eEYl6d5dQkruizn7/2R3ilU4zvj51YnP9UipMpgspA/n4r2NheZ3m1Gx3KpPiaPvuWkvLkumVImAQAedsm46xY4wkZpv1vqx1LQknW/ZorBUzhqDcWE/Qg7Az2b/hA7FRXoFUFguVOBQa/0A5Ta+cgYQCM4auREYTQyGwhM/EG20yQ1nWszrmIwDXtTX74Nx5JjijQSbPsaB56JLDVIxzEDWkqdFdDFKqrLo0bs2dK6nyT0KbO+d8my6sT0dTBuHmVvw0xpYdwwQzTdBgi7Ntddv8SoZwh0npwUku/bBYQySjJn3TejmqUMaiRVFJrIMVVUytt+yguW0zV+m7lDDOy63T+zeifUauejO6/Ss9CQq2+KxI9MQymrfDycttomRb9+eDHrdLszvzPR22XieFmGsMf+9fzW5aqlrdvw2XqT51gj9sc7ymhRzq2+tu8Qwl2p7jkxRZJvgtwBcncpUsvPB4Z0+Q+PFHTuHmUnNyFvClabk11bl4EUMDLm0iqWReXoeYZANo5AOr/aOXTGQjXw+iTkZ3oxLmjzXCxC/wQ/iWa0tM5Mj0nbYyXGY68CjPMM/EDw5C1TaR8sZ2w8Kq4xKq5OKZiZOK0KtZcXRicU3p06+vXTccMA/m/ZwfnzXComEVL6FD/FLNqNAAb29hQCMUCzEWBjl4mVJu5vbniGUY/qZQohN5jKUMWdgYMjhUytS0zOKELfVdNdDZdw139Xr9PZll7X6cGe38crNXWUN7GqFgzVVkYd+8JnfzJ9JcrjX8M/wK7+d53z5zpf2J/vwRoi9/+Xx4r0Q6/lnz3FiLQUFOE4my173mncfHwf2bcg8PnkLb8jgDPTJzzGBs2I1gUhvWIZX5rta6zWHHE7LkXF+0qHbfKCqtrGeD9G/6+5OZTG+ASnD0S5XLL7QMuciTvxRHsxd0GmdADWWLg8DWn9uZxc8EYgJ1fpcv5Jt0zPYO21NT9y/7it2cu6edy5uL7zkLptZ2j+kWQYWu/Pq+b/nNAUsLi0nzl6F5DuFZ8BcZcmndqKBGpFGRYn+3Sc/5BzI4VOJsOpGUET/6ZL+LqyjGdq5aw7VDp2+WMjpU4a3D4tRUxbuH16UYZmb+3UPXdaCZrEUz6HFtXvZqu9lkNLVkK+ysXTAEuyig45aUYw/7zGFNnqT73vDtZvLZ6v0I+9cj7+5LJKD18ouOkyrt+/3z2WNT+DnjJwB/xWe7OP5l+KlGW0Vc3LJoPumArjzUG/IU/pLDfAmzItcdUyGTNw61aDbLsaoAhdux6LmZO6GzMXpMDn6kGEMalh2OQaYjmwk18fgV6j2uVvj5J2eHRYza7Rjsc/TsEVJHTT55t3K2QLM8YNgsMX8U9N2IHZblNUAVZLCj7wwbxVqW9EbYSPb1lAi2W6BQLh5KpEQcv2cehXOmJ2z3FrVOILRNthriGtOp3t7Zi4Mg9a2sqe67d3/ebAa/veXfE3i/Miilv7xwudnYOuizGmvQoq1p9QdQuHSVH0ZplZ9pAhkzzZ0EuETTEjOb5lbRMYdevbM/l417W/K3ge3nWeiEcu1iHnS58mHf2kfA3lq8/Ne6jPNvgKSgtKXp6VGoqbXdclDRsYOMcW6IiGAUOmZ2Y6Xkodl1QZIqxvErMClFhhPLLGx/Mkv4ZkLKK1cHJ1K25dLK3mv/7NrP8FFBW227zfu1R6xlrUT/KKcrX2cpQl0nVSlwVKLahxhQsJClxTWY0GbHsrNMXowGNK93KyRDWIV0O1b2TnAflpar4UuyHy2UbFPOv1US7Fpp0pfJ2XGCHbl0qao7xmP28VJT0/8+9EKZ/ul7gRs06WKvVfselpWZc2h/BfAQC2+M9qzXRjxIwvwFFfRw2V869zDaMHJ+RhrWEAcgq8uvU9uvQYYP7dMS7P5z2LvABOsf6eT+eJ2wBTAo8x5ghYUUbnO93ZNy73zv0GfDO4hfFsYRLvE7ezBBqtVEeu0j+k2dMmkVpYMgS8+ghHp4o3F56TMN/fn1ASJ3zhy1S7dvWR2Y21OdW7nA+T4/LWV3z9aqc9oVi/EbbmtPETnwzNIsuNv7tYfTB7DoF07t6PSdIRNYu32mfal9wTW37LYmX2OttAKVQQwUeGF0VQ21gF6+t9xv8ZhPDm5yrsKP6mEMJS7OrpLERLe3adajHF6WU5m8fvbx4++4mxBm2uWsbC000qLeMp8hwV7yrwmEEzWZcROMWrFQ1KOTCbD+2g80UwV9N4ofZVc1rCFpkonqV8eE91HCw1DZuIHMgsinQdXjTRSu70rgj6GW4t1DZNfzZTa/D/Z5jnxqvkMxdQr3bWRxRKnTXHggzdAQCbg8O8KeDNeYEU9FAuN8iJikRiKfVKN0noP2EuvPiT3OTqcBzPtTeX7Dmt9HqYrtQNMG7SjadHnaksg6y83XBbkO7od8fzdvPPMPbJIiFpJ8iOEyEjPwpjlxsGkyvHQYVA4C5mjPNs038/5CXS3li7OzSGtaN7VFYynDBu5gy/X6wTfuL5D+4rn710tg5hUSs/1Wh8/9GtEkt3djw/oVyhhHuRmiAp6WJPWHqpex01pgnTYpdYeOprrLgKRlrgeWI1pTQ3WOp4/xWJg/loQpx6hJkTjD2GCm6rk984/MluEpVZa8lolPIuRaKciy3/Pxx4+aftCbYKqv/CV9X5oF+jR4HLqB2Xsu3TcsbEXKQr6f/XFa3XUWk+bJxesYZH4WwQ90Eucd84iB2IdzFQRCtPU7k8yN5jVcn2IiIBAU2e/B8/iSCUQZ/xuqJ0iY1BTaxEZSi5E8/fX9oqlmLp1kdO7OrurX3FnE2e3v95xmHMf2O4Jxx46Tmrjtn9+zU5d6LcsOGzcDmUyupY5Wdpwh4vAKdIylZ3fOmHN6Zbwlwbo+uy0mdSPT0ZQkBZgxn0cNJA6V22jLD//66rBeuaJMOPXKGm3IFXJ5YyLvJPksgJw57htVv+/tUvz2f0QsFAlDL7HlvzuPXLcrIaBltfAnHMfMhViXcjQlpx465qobSHBlEZH4sb7kalCPEwHVtnp+4Leb2v5eX+2y+ukE03eAIklXHk4iJUdj2SAbZIjcr6KNL44PfJsb8yYm7YWU88IVFnww0j1+ppnUnSSqtXfskNwhggaCd/yW3Nt/MafW+7qGQLa0trSNa3OKk6roh8PrmxBHQKs/WKXLB0QaouthqbS4DDWOhV2DDqjcWITVagaHSWqrNfosCTjbCGxl5Y6mampQ5WJk7p4bVQKa0u+qPX5Vdh+3OW6+TxiqGb4iaiuLdGCxXuNXAv+M3DeAGPa2P4xn8bTojW+ZFTpr3s6KlASsyjB253cujZFVxcYHtB/kG6bkxXx7mb/ermDdS4S+VHd204p+2ozEidVfc8FEkmUBFAeVFXCb5CtWU0cDKp6QJSuxSKp5qa/di6gEzmzpz8e/dk+QhP6a64mfrhHlNJZPyuRqZ7dBqvwaxjxLaJKttXq4vBnecqMZiHJ569Nh9v67ywVAydoQTI0q7fhh2OSgk9fL2t1VeZ6owM/fJihDoRM1nEhzUqKsjh0SvNsSZ+BzdIyMls8Kutd0A033i8O4JUj21eL/84ssOajuiBz7txjPPbv4z37k/ba4zvfzLdiE40sB84XzA4J/4+wum5HlJlDY/3OVrJqVoB5M8PdJNB3xFgNNyLxPb5uORlKt58vuYxE34y5LtP0z5dS9HND5XJHm8uwpASNwnkhGWYpURr9AQjz5IG+l+rXhKM95lo65dvXteuHgXdR4MLJk5e55SfAsElZpY2ZtFZUbJ6kzP5twizjRvI5nJ9rnVNPJ6EROGrTMzJlpTAah7/wU5NftsV4TOxwETKDU0facRJkmAGldKLPanxW7FpJKFCVicidHr+byCWoT5snifYiZLX5YRJEhzHBJOfbrsl/XzcSdWVW9dGEVteO1K6rfBe2Gu+n9xiHcouX1EU3cCXh43Z8qpjVk9dpIXq31bdxnVup8dn53kh8QZ+5qKKK4+Boau3Rd/+Rrb/NIZt4pQJfbQvlXSe66egwhfwjnXBrAC0kNfvzD22n1fgm95XjASOAfPS6g02nWuvTv/aSujTRguO8IxFYeEZHZcmXQ5jLDENSbLn4zM0FWRtYdZT8CwfGlfR6KgmQi1ZayM3dfdkX32ToboBmbOzu7Wm59efZHmxboLFNg9PMsYNhzzKvpUu7KsM5kZN7WfXjOctu6+vqMx930XtFRVIVKIwU7URJDkNIwi4fCdRQHIlo/BPi2oDkwkud3vF7pe//SwOBbPBspZYW0xh3GKNgz1ba02mslQL1i30LOf2NKDFUj/+eDymBO4MDwy2lM6VgBz/1YPIaIG/vGH9n/2xBqH2Zwx+52QzDKNlM3k6vzc3dIwD1OK0ctCRVr0I7lZ3193WNe+TiQECeP5Xqo37biC/QhCgvXZpWOv87Hv1Y8cKv1ub8q2plJKPw3Q1pbma20swqqtgvaAKkyan/D9Cg5XKVC5+mWOjYclkrkX7ihwHAU3KI1IY8vxCHunNcKrviSSHT+4tuF36RNNxB/OMCYqnwfTZLxh/7C5cNBa7ZDMH9gG06DSq0h+6KBgE1to4U0cFKcZGnJ0euqE6UMctZgcqWibpd4uMKQSPB+rfSH4HMSXVQeJAuIIHG/p3iihbrh+3bNyePx4T3rjVRAgDx+FcYQ8BNkF3rjJKx5dI5SP/QXakSAzHF8HVtOa+1dzBiU1Rigsp8AoXTv4vV5vLjYjC6JNRcJ4eXdC9FwaENcp6jPRQ8yGdT1I6X+JMVP2zh3X5hdd3U1o6OvjpaZ82lv4zcw8L69NeSjIZQ/uu1OmjWCFFzbwXLf60Qg25vseqaGmcDpIWBHtM1KN4abmVeqjXA5cRFGhBcrgXRHwoX+iiZMTn2T4V9fK23fcKjXVTCbbkmatPB9DZlsouiimc296TsaUkic8vZTM/Rfammcq1i7XCCWgc/SbUe+XD0UZHNdxYGIPhrig+vAC0/tKcaT3gpGRTLnVVzq+Q3COh/95MX6MDkgq66QMdWGGABVNxzHCEiOenefErKcPqi7Scyc3+e0VTZoja8XWLlA7C7nTUy3MONVf5UIktHjX7sOmJ5DsGZI5MTKRlZxmF/w6IcA31+ILCdJ1KWRLe41eWjyZyDndeKPX9WvC5xpHvPwNH6GHJcnnajALG30sxlGGyMow6MUimSogTtI+EpcTQYV+ShOl0eAAic0GU6RNBOx1lirG21czxI7A98NQL22ZPMQfpQvtn6Us/vw45jAe1v55jr9za/Dbp77A9FJcSAkn+g2lB/MUHX8cRpmbSjq5JUw+13PfWSCWWYtFsjhqDGbzFgCH49712qP+ZMX615lp19tuL/vn9PKnjO/ZetPh7t/HhhjqDpVzcPsx8MXTAJ1btXfk0TVLbYxHmEh+3OhbqV5a52ismN7Zlpa09NqaT50M04b5+/CO7M9P39lm4ZlTq7+5cd9hhKIKs0xQ56649908gTh0iEN7HDTV3Z20eIqLR0FDBhvC5NJDUuKFbAZBBg1nkmXLrcPx1brZr6B8nZam2z5o2HOebeUrTRahtOCDZUsVPx2H4999+WK6jl6cA02+8Q4WCS5qCQcxcOBLoZWG3HtqDBuhcPsWruvQcSt3+TR6WC7QLttdlgCj+3dKvfPDaII7ZcVaY7CMFQVymx1O+r1b6+T1uP6DFduetBZUZybhs4dDqV8quNTaB//R+LPU/vrdyohCAIY2BvG0KjuMJhPboDfWZoOQAfj0rn8XtnfyyCvjVk4OMjix7EWStkDT3xeRm/wvm7xalXiB+aN/m6NHLP3Y1ZDKZ3UcrRKbK72vPtueelVSjgVQbaQu8NjuZoNvmIlMYHwcbh4/dYVyuNCkBZK6etQsDfg4XKBShzmihVyQJbNZxsl3qIz+/yexQQ/PCDrlsDr6nS6PHH6t4PfUt44ce1257+B87sJFNj+8I5EsxnrPI+9pmWgmVRjwkAlAXezLMy6dT2tN6Hru4eslCZYHgh7P27mr98RUDFnX8ZufGZn+/BD2Z9gl8sF50stLY9iWlywKgZol7sUDo8KGbLv0SfwrQMd6wiFsSD4Ui/prjXtHTZuvf+ZxUlJLRs5BvIsHdupxd9aa3Mt5XnMxxivsH05bNOB9N6PsObeiX8t5WK5E9jchbu5hs8W5+Lf4Ue4pXIds4GPI6udMv+WhcT6oqaNgC9ePGIXN+4hwsl9XMFrKKWXiiUoymYp8Hwv9HmPre6EuInYrnCCDDecTDgyJExeHHe+7YTwLhXcJyYuJhzzewwIvCPemDbHzOUWnJRtEnYeZoZ3eJsarXGczKyCn4nAsBFy59r5Atyc26A6vmQeGUO4sN9zuY4eQyxbOV2a4m0fKtwCzWg2N1n3qKMD8As3HjA+hq/pjwX47eWU4Vxtd3pJD1xyr+/eEDwwaI60VTGB7vWzWohl95DSP6BRFunoR0rT0Dah38xgqwTB8r5RR3sA/F3vxFbqMDlSkv64/1jjPhEfvAsh7KZJwlB9Tn3FPvaarmq2GLwBm1Q80wnSjD+1lTu0vHKfOXuYnyJeoLlwREgXFNUObqWEJb+IZ4gp6G7SINO81JbrWVpFPiwuySZ5PtiiM8FYne5LlV/A54NknZgZak8++o7PqLZZZ61MLMRS6dBjkgZN1l4+2lwha5+FlMF8bwXOj51AyKCSKaI+3qPNxRHhf+9xaMcv0CPTO/hNw3gevmhTKS9isMdSkIYr8RRQuepdvK4T/xA9kHVUWqYhgHonZ1cfziyYMzfvZC8pUq+a71kfKt9YsMQz0swUvESIys8uMPugXM7aCqOYGkV5S+O+YzlnRf2aaNOj5bwEw6nX2b4yBFTinu7sexWCR0nrMtTKrW5SP6Fj92HHab2ySnub3PUjp7Ja4Tl6yowYPux8SPwdChTBbIiucl9zeATRqkMPxbnvgBbLCsv3OmyPRw3FoojOgoAXMoGQRKK+RiZLmpvrl0XvI86ofYR+qoL48SMU6MVOxwe+y6NAVo3VHzqrzOBCdwe10Dv7Ipb0oNF964+rxEq1Uu1Hp7CrVx7uqlahoF4DNFIY+v6KZJqsP/yjK4rCUR8CU6Wzl4/6gkUVY7mWXHcMcIWSg5LCni+HaQ2ecGtfiBwrMDdXEjf2RmrOBzSlyDogEEHm9U4bWTcMPcEFJ7hJvklHYspyYqVILg3ofmMn4LbI9bETmp9PHzPNA9JxfziiIsLLfGl3GW5HT/BE++ZKTc4j3tJ91+9m9WucXT0xTVXIX/3ywERsC0k1Dcrn+ibIgaeuRJ23sIPU4+KgYsLhhVBV+vZGK39iy8aXZmu1XO4J/6kCxmRnmSxgJZnpMLJ0yvnlFQLXKYDcdo0qAq/wM997Cg1W/XjXCIzYuXEw6dkBcvumlC3BZ7xyNn3615c/GH01JPuCftdcsHehVO375Ufk3PePdN6U55lRMkhGAdLYNjYPbJiclLaDHgjcHlOuFn+2YW/Q/Gz3fnoa4DAeAsSG0Ug2WYpZm50/oYCOLOCPJnDjSWdlNKcWyTspLYxVQBQOhgJy+RJTtuL+cgk4KvkxDj6x84V47SAPT64PpWr/GQCzsI5ILACBn47fH/wBLOYsH/8lDRmNh+Lpx21RJ+MF7aJ8Vv9JXMZtezgv6tp+G1hqLhC8z6yP5NUDgWgidUus7M195JzuSRD7bLsNcM0G7IW7uFfvS7ShuojY7FeBUddtfrtFWkPKm/W1ahZbBj4xAAsNPvp3u3ICJOGs+3jdcmmKf0wa/wXbHxP5BvORJfiT3gbjwhXbvXRG6EoL8Ym4UBfG9xQAaln+9KW/LgOfMPXbYZnhmxGZto3svSC5BPPBeWjV2/PFCriLBf/EH/id4o5DmAv5SWml3jzGSwpuUR957NHnZcKDoMoQXurta16EkRyjcK+SPyySVw6LMXV/9KcjT3lqGQ/Jv9VthlnUvp09D+6YqrjjGvmZ6fJeMpwWAWHSBfWdm59tPJM6+/jEhin8WOHycfcPJLoRx3PCT0ibMbto+T7LWfX+jcAPVumo+FgbyN0vAQk1uDfkE+b8nPyA3Cf5vfv8Z9GO14XwauzNrJe1ShmWLcS9z/AasBx/eB8H8R2+3MnhWo69VR89kUf5eFrXZrPmnk9QEPnWDwf88GexbMi9ZwX1IsK8i4AOghsiX2LHihvSGj0U/CaiTykCQy/wMSjf0X1lMt+85VarYl6erzlDzpr+vLcSIWzGrejsZ949uA+Bvkk5G9AT2LXlxLOJVM4zuMneYvP8zWr+258bn9zK/sB3Eu9j3pn859ovesjHle+eGKS9y40u2D39H9riB0X1XtVdICFbrK29NMOk0aS9vMH+TVLvxm+jbsz8zQBsBpjbcUls/xekEdiiPYq2CZxny94V6L3XdccA7fVGpEUBX30nEcDMlYhcw3UfdfjwsraaRmm4AkYWpS8KPv96Rx5paUceqS2mog7pStqeYKS2kW6vxFafO8McWafj3nk0pKp/FwCVERuXGkjtp93PcmsiqPj7f73R/x9jJdK375IBP4Ol8RVWMDAwMBlJRYkaMaPA/wNQSwcIIzuCDxI+AAAdPgAAUEsDBBQACAAIAHSlXFgAAAAAAAAAAAAAAAA0AAAAZGVidWdhZGFwdGVyXzIuMC4wL3R5cGVkZWZzL2RlYnVnYWRhcHRlcnByb3RvY29sLmx1Yc1Vy27bMBC8F/A/EL47v+AifaA9pAjStJeiB0ocSQtTpLpcGnHhjy9kJbATU5SMIkUvAqUdcmd2R8vFm9Vq9ba0OgT1HkWsb9mLL729umboTefJyeKAqQjWqC4WlkpFZq3ICWpwIroFU0UwqvDeQrsEJPjIJdYvcn49fE3ALTnkMjrdYq2CMLk6Ee60NMfwYlTzkD+rfIpJ6Z0hIe8ydBqSdzNg1tc3CEHXSWkNSTghMiXqb4s20sE7VGC4ErOo3DcMbZJ+Ui62BVh9c/QrQpGBk95ErCrPShooOWy+GhHySFTdNxjeffV8V6ZAosvNR9Yt0szytpuq0EUezxrLxtZlAK030eLz8c9U+0xzGQFOdG/BT+RkrZbOc6vtUu3V0uoCwyrEQiyWpyeUkRlOujL5G/QqDKr+Oc+dpe9wcWkT9DXXsYWTMCjwpbbDklFTEHBYpkaVZtKFRUgZOUnKfH/akkOSM3iYicVDBxdoi/VxYI4X7OnIi2u21TZmwrLrstPgrOJpWrcvcCm9PRMt+JKfP+etee3OTBd9hroNOZNRpUWYiih94gH042dKPAUqyJLscheE/r2b5Zmbw2jITrf9aJYJV4HDs2tsnMWHx77fIXTeBVx7s0ucyAjRyv9g1H/vwPOhjtbz7mQ4Dbr/AFBLBwiD/BnI7wEAALcJAABQSwMEFAAIAAgAAKhPWQAAAAAAAAAAAAAAACAAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvdmFyaWFibGVzLmx1YeV9f3MbN5Lo/6nKd8BOzmVyPZyTbm/rdnWmZK/t5PltNtmy/fyqHqOTIRIkYQ5nmMGQEldWPvurbvzGYIYjyb5c7lK1awrAAI1Gd6O70Wjk5ZTmZMYutwsylv9+/VUuCxesrtiCi7ra67rMKfv6Kz4nM1pTUi9Z8fVXhIxG8m9R0wUj05zRSpANna7ogmV5SWdsRi5ZfcVYQeY8ZyIloiRXDD4QS0LJtNzsCS/I91tKzNB1WULnEqiKIZwOGIOhHHr0rN5vGHn5fEcrkfNL7xsoI2P4lV1cvHz+nlacXuZMQCM+Ny1gIqRi9bYqTBkrZl9/hf+nEVOxn7e8Ytgf/jIY42JD6+nS1gySiwtEHJ3RTc2qi4t/1o2yfEuTof4039IfLz+yaf26mJed3+dbWmJLXsxLv5OirNY05/9g32/p23JbTVlnT83mfncfRVl0dgAN/E94zaptzfPOz3Qj/alLcGtW0xqWxqU4U+i25BJRphH87dbLX04DLDAtRNhChC0WrN5udjTferCoIrefsJVotoLyTVWuN7Vp5fGaqCteAGXLH6ZYbC9NYSa2l6ZiDmtX2zr5t6leKzJUtfinqZwuaWXr4C9TtfAGXDgj6kXx1qHmhWBVrYsz+aepnZbFlNpa+aepLc2k9U8Dhk8HIkIBAanEiKSiVzlDAsYfhknYNYAE/+iiDeUoHvBfQ8q6lHvFm4oX8D3+awqnNAdKwn/NBEEcjfEfXUSFQpf8YUmfFTsyJhevfnivS+A3gMlz22q+LaY1Lwu1Pq+LmlWbQZZlKALdQjPEwIibS17MBonbKBnid0reRfr0pJ4ZnAFp05ph04LmBoCwohWIsKEPSEv/Chgj6G8mvKjZglXnJ0bmZ2/Y/NaK6bkIqGdwc5vewFBKJuW8gCVKnr7EDfC5FFFEbw/k9Uvygk6XjExu8PsLwf/BBoLl8+Ht+WmSOl2p1U6wJ9VRpjt6w+bCaz0ti5oVNcA3p7lg6ddf3Q7j0/skF8adpRTW7lwFltx/xmq3eOh8DWA9ZyuBn5Z5zqaKd2fOZu9UtM4LBlmXM4Dl8e4xlMiuHZXAkQxOz1BKxsR0spgCeIrI5ZxlFSHzsiIr0EtQEsg6IgGV/wHiJ6tzza+yEAlW/UBs3B6G66qimxCwdnS/sPiR+HaQkexskZJO8ckprnNxPYEG2cXFFaOr89Y50JxTYfUtF5qn705htMHw5J1sr8RkTnlhpzZJCp4n5+O62rJUF0lqD0svyzJntAiLi+36klVuqYVvWjFaM0JJwa7c2cFikbokH8rLjx9waXe0grIPfPYhJWVF6GyGf0ArWhB2zUUNG1VZMD33BStYxafknS7Y0IquSXn5MSziM6IYWZcrhLcg7uwU2hlh6wA+KC8/poTP1MrpXfTyo9pkoF7VjUY4saIsRu7MUScRKfm4FTW5LK9B312TwaYUgl/me/hTtgFaX+3+TnmlOuRzuXgTGO/cKPwO/RjiGuoSgMzlAfkDeSndWW5yCc/lKj4nOzIeYzfueISsJnwGvAaL7vKg3MY8ISFpeLy6TQ1rDcloNJk8ayPd8/MY/7ooXzVEEcCDJHibasmi8OZxFQqI8vKjrPqs8LpGCtDYNKdCkOheZDQZ2R2w4636jPibwk5/QdblbAtiyunamlmyN9tY8fdoRKSdIoCPNvDRdgM/gco2tGJFTS4uXBDVjkFBe5H9w0ZhdCxezNh1uinYFf7ytwrDMFg3qNOVocMaEK/WMGis+4L26W6ITcc7ohDpsnFNaLH3i1ZukRpLySkittMpEyKopcWeKLvAYfFNE2TUIwdywlh+D4hk0a4fkBaYECUeRLoyVZWW7MzyZ3I6oAyrZXKq9PdQa9fR6PRq53OV+QErdpYDTLHcFIH2+ZwUZa2+1XJC9wSUTXwWY8UuXSgORcjNdjzw2OUNK2as+pbnNas+RWp+3AC+xP/l9VI2Gk7OHW3+otzUYiw1r+9gO77c8rzmRZJaI8ApU3JiQatLcJ14dayqysovCqwfW4P+DG24OB+A86VZYgwwp1yZR05JpDtt7/gDa9PIaVjRK/bzluaNUmmZ+WUL1vxahGWCAaIaY4s2jJC6lFpCWBqbvNaybMl1c6rk4v2rN29f//hDA4htAc6uoMsmRLGRL3n9h3/xi9a0Xvol2k3noaPasKKJD+V1C/BpHFduY2l6rcsaK+Z0WpcVL5Eo12tazERQLFgN6lBYXE3RW+QVIaeoudpyXK9pxdEZ4rafsTkvWNjxgq5DyERdVmp2Tum6bMCK7ki/SLmnAnjyMgCSWAMoqEAe54LNLgzBO7WbqqxLoKMQlCXLN6wS4dAw+CR5Ch7Pv8g1Id/l5SXNxWkC+sJNRa9+oGsmVVxgifewg6g/d7yqtzTXlWw+BvlG2HVd0bFZ5NtUjfKtGpg8//vrh3dvpnEr92lX/AmG+4nRBrqm2FLVDnRYpodHuZ6Flq7skLxl+Zy8YXNWsWLKTpOguWZ98LuEdY79anyXaoJsdqFrB+68U70HKKve6EdgEIC56LqjXr/UyozZjBybwbZ7w+bQ9FCzV46y8ILmOXjd9+T92xdgGWpdjBfKNLrMy+mKlHMFlas8gFXkahQV39HaV16knpbVFS3EnFVv2HxQMW1cGpjRHTy3ha+KmSx68q9Hf/6jUWDVQN+xGpVE3IrojvJc222BIuPM3lHpAJ8DawiB0GOiJvOqXAPlskLwsjBmjYWRFjP711MNpmt6GL+S8h+a9YhMljwhx4GJZFBgDAoUIIPkp+tX3/50/Zd/++n6z0c/Xb969dP1n45+uv7THxM1C8d9PBj+O0wKNyVfe26sAU4IiJMX2k5SgHiwu6aDq1E3xRwrdllQatbsHQyeS4P7e93mrfLqujS1ZmLR1sLzRH5CVxF5pnuGxX39EuxzWcHnUjOKf1zwnDx7hZoTN0RsiMSqpLWGewCA+aa1HRgX1acs5XeTKnRaMbHNa+0BHgRYSslNor0xzmI/f+Us/L/CluOOmELTo2P9HYCXuh9/m8iKW2uiK2hi5nniDZVl3lCKKnPBgq/86XnE20Y2TEzphl3AqcLFGk054+0BEKT8lsA8/4OZhnLbgHOAkzE5SsnR9fE8JcfGIaD8dmB7Q98DbqcN+n8w7GTqOyki1RaMoyTLVKdPjq7/dDRsTlQR2d9BclKtwNUl2YkpCFUKpRW9Ipfb+dx6eiTFQ5k514nQKnn2F/wKqBsQULEd3wVSzRKsHGEA/3iUKMsjhNqQMR7Z/VuSZfrTLJMUl2V4DoRjpOTx5KdCrtzjNMTjED9xSHLoyRmX6P7oDNThsXA9+bJizlk+I5vtZc6nUkHXuIx/+HZabsAFTU7ae8Nukv8jD+lE8ilBgSQSt828omv22vHe2Sp0sSY1W29EQj6RZEcrWi3gc+lG+Q68g1IWmoUzmgeu8YeCrtkHQms5DPmgRvsgh5GEE4VAVsHnREMNIJi5uK0AzrM4oM1dNAKqbFbuWIX2I3h0FUwn6qMUITmxww9PPGj7fKtmkUpwTxS4nwywTpcRfhBquXXvKXSaQldDI1Fm6Y7CtmidjqDrWGcjuBqxQSa1wLHEL+yfSGFU1KpBhM60iFE96EUbj836QT+qVjrnx5KCImKaz5qyR3M4nwW8jacO0hWqZKxSYhEFyt2qwdG/9HYiTwngH+0394Do4My/vj/AXS6vJtKNnETqEcealxu1K7ZvcZE/L/ankQ+k47rrk77MSWHwEfY3AnLBwmm53uTsGqqEcmy6rAbg4lifNI26tRI21ELuwHj+LrFiezDUokyw2gEHrNg+xZEeQvl6wQ5QPxJBQPorth8MoQ9AhkP0CJOskYiIEr6CNCtwkr2ZQPnk2d45bgdMOJWFciA8TbJMNcyyhCRZxmdZlpwmKgrIdDImiTxUcyDVndw8lR6dJMscLVId8uLA0OUt9gkaVdCvXrxY10/NynqdQ6nbd+JoJZ1iQC+lYnlYlbF3oAQEAwdKqoGOYnGbYJnbSAFrRIwvOFK5eh3SwxwRt0oM2SImMXh0N1aV8gjcVw56Mbv3IdLtpmJwQEGoOhd3WTkYxlZMl2y6Kot8f6Yd7B4Xo6n2d3AOTctcYeEssknK/k9k/8OT2GeHvkotLCdoKz28G3AAxXs5i+/KepVVl6npyuFLIS1pG7swkT/PFT9ivWUTRwBATab3SoXgG2OIK3YaD2bKyTs0vI4hZ6luaaBU9DAGCtaVZcUXeFqd6G70h7eOVOJziyUvfLBbaqmpB/yqKF8NI3QEn0KhktgzC6Y83bDok0JAKD9DE69OpY+0vijrQFgbum47pcG3Urb11ia+1eIz0gLIsGX/1xR6JyUgtpHjGH5Fj808wiBaqMO/D9quDUYObNgK06G2ui2mcmfGmX0xjdSCqfVSGM7faqDI7jR3UEi/ZfV0eScqgg/+U0gIBkJ1YVOVG1bV+y9DTAoBn4GaEDOHSEkN96vREgL5BQjpnVLjehMSfhAjJKkjxikJ/z9mwUi3Aq5U8inh+se03BZ1bBCxLK/+Bgfdnr7hNcGTGmt4+HU7mv/g2mD96RqnMMr5ikVMITl3FdjWcEZ0Tk+pWGpeRpFSkT62BU7rzM5LlaoJnXna2f1Yymj0+EP6JlIDmToCS82QSLGOTQ1uajXVh7CjpK8D7KipNmBHyQvIj3JF2twQVJ9GmE8NYY3HlsiczyVVjceKvL4cp79zQxv1SbrL6mp1rHkS+jWInYCdi6pR01Brqco0U4zNzy4pEpcj3+vLHHeRJeajGKtLLmsRKObLmFBB2LpdLQ8QBGZolw/NXZZ4dRyiHiys4jh6cnDuLMLA/JGa0VOPd9UxgncNJ2PXG1rM/sr2YmI+O/e0/CNN2vflcLvqB7jcpamAXSVxSFa3uP9yXGlh1rq/HNFnTYtyhz3t2o/t73bWO8h5hymq7KBEsSyrOm6uK28ABBHwmq1jdWbUxg2JGYPwlktmBh3YuUp4Uhzav7lmj4jUAawZW5qZFnVyDV5sRV2u34WOKmI+BIkn7wUNkkczCF1YPwI/+zcKBv3jl/ExEl8iEty3EjLU3itDtz5j0PyK7sV7mvPZRN41cmZIkv8YTP4jO38yfJSdJcNz6FMOBJ5AHjtS1xDP10BF/lhQ97pma4cFuyb69BGEjlhsDcORXD+hM+7QiTvWjVr8dSqwYFYWj2syreTVRRmbJZiA6AIlHS/BrYJwwfl8ltnPu0+PLVRNcjFAuoe9LiZUZ8zu6soN6cxKGegy5KGsJSMEM3SR614NcqEreK4hTMy9RGiQDJtR1M7xcnThXheSPOIL6MssxYm6n9ThRavfmx1M4PrIkDO9Oh/Qs/khky2f56JUnQp1pxVwRQURbFoWM1WXdTj1HZECt0DIp/vKFRheXhqL7GpatCjH7B3FiArVdlnAHhjA7tTu/1bn74789tm0rvYXcv0voN7pN5BeMUmVapC6JGc4Y0lSwIlwz+F7u/GZm70WbpQr3v1SBWBXaLFhtXWNnLKuvdgyZLzRiPCarIrySpBleQUxAWu6Ap0J26BaUON1Gpf9g8WCMyMJz4lUaOXGdKIIaBjKDTe+zQeq0TJ319o08yWJbtQh7u4g8LaCVaNNVe44XPeOi78DAtDAGVnzqPxzq0hTGLrVrhhqNE+euguM4UWnife1lapGrjro6yNX2yWrnTbIVTn1BOjSVCRDf/SWXpObp1mWqUOoBuD+h6PRux9f/nhCKjYtFwVEu74oiynb1Egy4iyM1SJiw6Z8zmGh9mf+jhSdrYqx0/xWVsBOzUUbjUi95EJZeUsqiIm6BP2hXjK8z1RXfMch3IUt6Y7L6K++OIgtvh6WC7zqtd7U6hz3dx0933bTRMA2C21H3ZAJosjIcDjROx/7ZRJNKcmyTKq+Tk+X25qUa14DagSbbmu+Y2AV4VU0vEzBBLkhPTtUer8K+D9uBJWedaxibP08kTY5D/CnBitYpe8T3JDkhiQ+TJH7YWpE97qlAWkFXCdn0IQI25gBJ984gz8hx+eO7jGZPBIpOT9PySC206Z4+jUcxrqXyJP/OhGf7QTnfuZcFvWmJc+whw2RolTtFajYEzr6x/PR/7s4Vz+ORn++OP/9PyXDFkzcBRdjjY7VnTESn3D/wSePxPm4azVWauy7Q6bj+BqFnQXdgCe+KPDkhEp/MLBfDf+TZZEj84O7jGrr2nVu/JpnZZ4NlWJDRwQkxVu9G3kbqDknSbz4zObewOfYdXa1hBQRY5K8SNotkOTpCxL2bGbhd/P9lnZ0ZM0NuHNgFOxH4uTRDMwO7EudvMpdPMyRMnCaDFOuTVR5d2U27IRtTXnRCzhoSKbLbbFS5tAd4Rr2XnhQ18DiSLQ+axxQYN04bpPfgBFgwSV6Wme/O/tdxOpMnuoGmpra8KPlr8MWMffKz0lK7Gw1TEqBT5XrMrUS35UT6rzcwVaLlbuTZmHEwkV9fE5BiZZ6+Y6zK9fOxSP+mYo7bUSSKsvzk4TvgIkbuIvdr6KxLvricdSelbf0B87aem5Z34Q1FNJmDzvfRFzWY3IUuzzzSS2KDRabefmhuttLtWsWZpTauR7eFk9dFMTIEZSyBORxUiojesz1loW6LJPMeSXqBJIUgBEqGCNXSz5dkhUvZnC9R168rZcQm1cx870o18jmDozAPOa8DOIdU9kKim0wosj8Pmiel1dkza+l1UfyslxtNykqrQAg3JyidVmRBd8xuH9UC2xXL0vBMu+CfbrTyXjUsioUFDy3wgR1v2N/SwnWgozJN5KEn6B+a6L1xXaNIEiNWdS0qiEW+wjzkW3oDLGIx0JN35VPIGaImBSB9E0DpIT0OP3DMLY9HaAB7xBDIkH253FJQ2i1eG/u7QVRm/i6luZb814c6rLeWtyNuMHg1f/zphbF+FHHgsu7xd7O087CFjUwhngLhPB8XuNl4Rhja1yEjcfkKNjVm/25mWE81S8yiUbRA+nX0wUdCwvsECV2Q4Bde6uxAEGBY/g441iiQYUl6ANQBuWNqZ4CV0ONdU9Ojs+HLZuxkkBFiaSbElpVdI+RCak0mWBGglzxemku7sDV6v0l+ui0b0NWnAEScwbqT13tPY9VAwXHUQc3Ogsb7KE9hQoVTsd34pJhcHvQeiYRVXZg+LMdYXoT9dt/bvNgm1hRjZppsd0IchowyoH56yi5yPR9FekmHpxsY5qNCuEdZUpZ2kcSm0IdhnmYaZ2A6Q7mcQ4/IelZS+xBm8oHqp7MD9GMw1kzIeCSfOQkvW7Vx7CzgfrUSw/XlnzLc0bL79Jo6irsOvHrIpnB5I1GL/UcqA4qsONGJjdw8vX5OS+4Lrv1sqnJQAkzgVTi5FQPAP774m+6VufEce5XNOqDEj8SJNhFT9xMXzb6wkWdOgcYYBA2y+fqHIAEBwE6LPyT0bi9rtwjhXgLg2/v5jD+8UJVPaXFPlX/O5WXcFs623GxRRuUBHAP1T+fVPZCJ1tY+7B/Td+nr2TaMAcDuImdvFKx596XP7DrWn2l4e0eSn8gB6lP4KPVyV+HJ9BJe4qXjpxKQTuLIZVVwUawPQM5+GH1AZ07Zh+CvIg53cMREhUjHnaBqRjCPnZ36EPlbziLRQhWjM5+bF5X0JXzs+A+E3lG9AFbSWRkDJkueT6rWCHtC1EziqYGerGUVuxcqNTBsMGMIBQes7Bh4jFhnDJwH5pRmFUkjtYdDi7e+mG0ckAbJUiekVcY7FWaGWAShEtI1wK54AL2+OAlxArTQoo3MqWAbyk3do/ItU3Bfo4VzzGBkDo1fqz2kcfwG/eKx14XqOzJppGuMJoyrA6zNRhgB5H9TbCfUwlQimOl2KUbJGWyec4xm6fpI0n7d+doAZhFuGJiA4caN4AiyK/2c0ouyxncWLrxbnaMSfLqesMrNovg3F7tQGrqbIvpTNyLVqYGLocJ9jNUAhztugpcVNe1m4oJVtR4o/5/yXwJN2B6jxPFhCoLCyG3t7exC9C/ATpq5hBzaMtQxcUFerzvTWXNVN6Zinkznp03eHsGI9SafZ87pKrauiF7MnuEl1BNjhZ1WslzLDOwMEnFYrF86jq2Je2+t4eVeS5VHCdG161dUvEObkaTMZFz8LRwaZFYu0AF+JpL1L6fhIzJyBgwV0sO8drVlnlGn7WLU5PeWmfRHviXnVPuBxQA5o2bl1xWjK78kwnAwuQbxKc6SGl4BI1rdfB7OQfyaDZMUjLiw9Q37uV8OBm12GQNJ8DNRKfUvUEeOdHe2Yot1O/bW989IJZ0Vl6Zxf+V0KbWGukAhCS4l3Ck4/RY2nuDxOtRNcX+HPpBoL2e+ZwMDM2ofAFoneM3eGo/QGNeBYwjrLqyGSrSCEXyZ+CGd8ah9Q+8lFlnve1CEoOLgNG/DD18xg7YnAjTIhg+OPdTCfCld68S4dGucktTURvCkD8mXnyiDie07SLBKlq0SCYQE9s6Q+oMDtJ3tMoUPvTPLEueJVnmfFixRXCKidIq86xMpIpGqfTkBegI/kQ4P0bZts2Rr/9z0QTspNNBfkzV0w78NnqAqZm829UUZlXAGkP4IfJV9voBZho9Tm+iRJc8BXYoK1pxhidxmqvDisYydTk2TNaKQCKYZBiKCYdBt/21DPnf7bAFm23OGx+abeJLKHTkcKEEciOuSZMyrRZ8do0uEXD8oEbR4KFwZbwP7W/wfAbk562badm6fmoL9NfOFn7mdTNZS77MyrWd5waqiMnHcm9lRN2rayWNeTJE91xEC2ndHVv2RvVYhry3x4cBU3fsiD3UCEceedHggTTpxmbj5K7vZSzzdIa87u3fzPKOVlQbnOeirEt9lYLN7IRHIzyCaz6LAsawsoW94rrE40GwjzEhrmMzX1zYZm6QZOtBkQSwz0lRcMdMXfDzpMVoJGNJ4UKWBK0soIFgkKlQn2RTFAz7xxUj61LU+d6e7wsiI0zxHgaaKvJ4EQwRWuyv6N5NI9681YaEKWN6G4cJLcpLm+piBzDqRSgYHb0jaa7eICFZ1ugjy0gyTFqkd0D4nuQzcs8MEAg5zXqBC3OyrvGqRmK+8z/TbtyW6r4nGeval4xdju/7yc7biIKgX9kpQW/+RtKyQyHKcAZqVVZz0tQjMIwJreayUj8iB39EV/m7nSTSsfp35FZG9uWrcpvPFLSyuydkYD7192Tb9qmcYBMe7Me06xEU3JhCcHzIx9Jox65d6+cLc0+MSSbIPiaIhg+x9Lwn68T2DKevVJLKhJ8Hd31brczWQzntWxweuFfkuiMOO+hDDDfPVZoQtF1D0h/jqTCpU4IhJSsTlh90o3CTupeC268ohQYibp/OgG3++uZEW03v5oxW6S6FJLzhFHCGdSrnN2yYSsjprdcLYjR0E4t5NZLYnaa6VJDGPoA7FiqeCU7npxTicOrHoplT1YuJH6mgHP8gsNm9FvyxqNphFKDo0V0DF5E4q2jTu6rAgTi3/6EieChuVy7jKrqAfTpQJ4N4H2PVHnem4pFj3xbsytj1voSRve6alLeKXiVBEtY/MnW2FJ2YHFI7CMIpqnRkYZgQxIP0uAHk9B9x6PojN1LTNSYbWzAZ8TEcj7tn/76RRK4BniL0lnqdJjEMv4/BFIzuZaRqLrnU83XTtla1bIbTtdmyQ2Rgo1gwV88lietfILF1pBXCGcrtgFoMGN2E4WArs6d1bS37Qm0S28Sx5HQUkS1tNWXleHF7dZbl9B/7xoNDhy899J6mCnNpm2WDLlvuM+glk2zkEk+Tj5qpO+5JULvD5HSYr9QG0AXPQ1e4bW39HejuAkGeov8akNO6rvjltmZifJNoQJLbA1NoKi+y/+Aallb9Vr2vuh3UikJ9yCipcZ3oi2lDHXqQo6mFGlGnLtRLC7qzC7DX9U3rRFHBSY4HBeOrw1xNImZ9GefILyoSK+4duf/hziEr7/N4SeJHFb2Iss1dcm+HyUGXyf2dJv3cJg+nOI/OqnK7WJIl21bwHuIUiQsvJAK3BRwpvC8VYWIQro3ULWZkcgzpdCgcJTboyXfLYACDvVitTGzlyQlihpXN3h00jIDJly2o+/CCupPAFbjbgv8MYUmR00GR4lsW4+hrEspdej9SNN3MWmkRb0UPMKUxQIF5gdskVrA2n012yaslEGSgiCkldkuSF3zNrkRuSX9S0yF8IIbnhYrWk/GAK4jaG56YeL+GWHIaD09kB6n81GvvvsutQ0dVlOnEcWCf+4kSbPP42Zf2O8yNc8HPaSCDUyO00Z3PQJ4244tpbiqKPGwIZ82siKoi0fxW4XU97eNvsXC8x7QP3aONqMTtHbQY32t6rc+H4U5HBG89vbd39uF2eHJj/lxYkqh/tlV/N9Qhxxg1x8CJyUYaQvtV5IzeqP9NqdmCDIPe01YMmAF12x5TA5VkxTeELuGsCe+G4eWSM5JzSF4Aj86e6ZdTZiUTuCrTbQVPguZ7QsVKXiCD1kzeHBG96EX2PyaDCEXI55AGiO4nNtisl1Mx4lY0fD1v8yP28iTe3ZcoIxa1fIJQRZBbnW7F/85+vygFdvr+7tRNTLQgHQ10joZfgM3kM9QyTGpFTg23mJKxpE39N3C0/v2IHEMnR8PhA8Ht0My7tfPeGnrv05h2P2njcKZ1Og/xv/b2wEZOdaLe2Lt7Sj+nrzSKn352vLx3jztTHMqOg8lGD3YjigQnHt7quj3uTY2hh2jsEIttErFDGs6b0vCAJOwpBe8uAW+/gNtFPwKPIStx9JgAqTUXAuw6c2vbuBJ0BzJbtbXJnZS7/+VcJv2CppxcrH1CfZoZWaXQMdlQg/SsXrxPaZO0tsb79Em7qcawCTJM8s3DuTctChq5RSHh5tuaTlc6Le1kIrFg06maJueOkWSnJse7mJfVBRiBgfQ5QLSKZCeTBHtJzs+jESwJiP54lIq6n9AjRuXoYKiJsXP15aM7GLq3952zwVzr5NFN9xuZvS+0zJtNopFBxkm5HNLmeSMaB3tAFlKPHP5NSS2swFe78M6e6zq0eUV9sYq34tk+XbE9TFTYBGTQWZh/TL7qhA0zcBY9F+9aDryM8V6uUmUBK8NBqQ+Dob6ZotLxAlzDmGFfru4fjaA3gcl5TJ03XqVYuuCcFfh/jTTBMdvBKmq+XEHdsGXsfj5QnbTY4B22pr9hWn55dVgmTfRU0hiEkZvbOSueHEeafnanV8SuiWhBIXGZt3Vnh/PuxS8X5OG5ZdPCvb831H2bqcslKhdw2KaP8VnMpXnnw6x2FbHDq+pqhRAq3KYFHvCkPkgffCBh3R7MLfdDWUOSHikc4XkzqRFAxGyeu6G15ZxQzNJT4MQz8r+3opY+HUjkg9qcIIMSbxqKYVcAlkbrBrlO87B+ni/q/5TvTMBnvzSzyvxGbF22v5+122Ksdg3RvGzTgoxiC8nGjGCBv+Mta9UUPRzwO2Yaq0aHwlO8BxjhkwmCex41Mov2lZD3njQ1FZFFjWJVB0QYYA/Z7D71Krjlfg196GTn4QXEFjL+AhOKJbFsiTHoH2DQGhfhqX0xB4mmps4wiJYBPOl2qEVL0M6Bz3Br6OxX5/E0orWfX9BM/FCskxuNx/ZZlgyGSc9p6AVYs3pZzvp+1RmqdJeQqziN93JENbxQXdcJo3a6s391bvGdhmK7pdRhJx3cwT+vjXTbxzGhn+Tt45VwHuY1Zpbdv/CJXrfW8YY5T/XaJHtsPx7DJqwTdMi/Ot0WPSLsk6crtj9NHEWg10cIwWmS+ok2Ox9F7IMy72lE7/ab97Kd578xT9y1ouHXuRKnt1HAgkrp6vpIOWrVv8YdOvWyYK/18N4X/MwL0vLkgHk5sfUsvheFIujkDfZ9mqhBhvcTarq3pqf2i0TGdfjF1TQiArTh2b2/+Iy5dG9jKd/4XF3KD07uEac+Lg0mMZn2aZAeBicAFbbczMsvPjCrz2jOuW8LIyHPSvmqx8mJIemTE5m4RBrmEP/E4fGRHG9DOg/DCRlbtYDTdf1tCnmixBLugsEFzCXdMcLA0rtkDF6g4Xk+ynmxYjOVpbAtyYqNn2/gXaXp+e5FZ44enaGnpdkd0/N0Jefpe4hwK/EMGJcoPpSZCGbuPk8mlS4nV5+XPuotqx+eQarllTNJz81ygFmeTsey95w1U0MJC2QsbY/cqZSXBHrvyAvldIVX73t0dpesUMCqYy2AJDElRQmiewm0kzw8y9JnxXVXpqR7If1LJEP6rEmNgqvgv7RlI2ooSsZpjnuZG3Wkw8Lq6RJxIsNPMWOEOg+zL9BdPKLnk4tHV+e/Hz4bPJo9Gf5T4upRppMwHb8cWu0cral79Mj+hcdc615tvRNnUkQ147Pr9tPdg2zQPHEdt523ShYBoNZcogvy3VZswQXIJ/C7Knjw/Px6IxWoD7pC5Zr5gDsKlOa6xDNObz073RONB8PZW4Owei4LD6MqMeixM6mSVPggk1Ae5lKKHed05iLK25MRNYY0tNLiJfIIhXf1FSbGidvUclDbaYzsF2U5U4o+xJJIHUmHmuMrVUUD50+O8eQFxP2OVkkzOdfcdtuY5ky0LKQF1IAyvAtfNI0YuKSke+pBoXflw8h2pId7CEPcbxvEtx7AmQzkr9SfxAUjAkT8oUYjm3vmi9vRu7Co2ZgOZIsLmc7PCTcKutTtW1jry5H6AWLvIHcep/LPSuctpBc7Lfp81N4+aIsPsDObn/5xL67g6n1R63IxLBHA+BtMqrTdOHzX7T1STVv9R7qrKPv8ivuEP6v/cduCs0ZRv9sDuQKxex+ueGdCY3vG08kXJPWbGxgWIu/Tgp8KT6bBM6F4dUvhSQtekytMGLWhFV5NtBmeLEGi7lWwq8JeifPIUV9TNhToODMV8TXfpsLeaS7K78ty9bogfkb5T8H7WFEL6l3sgLRvBjH4zxk+nkPsbhGNd41qbAPBj2uMpFvqJyVgSWz3bfJBya42CfG5+LBLL7Iutym4z8ic8hyPws2LpRcXBbuS2nVZOY+R2aTlAtOukxKOSsuKXFVlsUCjLSWsnjbRR4Xgi0JH1Wx09wMHYYrim/LQQZns5jPgDADpgy8HY/hcKeAL3YyINMFzvOqTAg6mJYNH7SCyRK1sSWghndbO8xzqoSmZCt5pjSncncR2+DiOjFyGNyuct1ZGIyRjSDQ6r5hwO0HQIJcWIzOOjtHtZgZvbPDaX5ML5dIP4lqay2FW4V47kjOI3ZQauHY3owfJfkOfnviPjWiPeB6w5UxpgfeiWC3T/iknNjRt3Xt8N94LmudsBjfd3799gUlf8fX2isGDuOqVRPkitf8ugHTU8Znnpwu9d6SSzlko2qJvsNmaK+llXjJ4idsTvHkGJzKSeuFpxhqenz/gD9SuV/WM4yyVKNRjqJAeN8GMbIouPz7TLj4/N01jZcZmXcYVXPjHLjqwrRK+qnm2OA2Rq0pA2bqsmXrzDVYDXMD4wFKxkCcUhWHqfEsVV8KV2sBnjFDBe5caCzKOys4rBmrUV+/Mt+C566ZX2dPx06YvVlLP2F8VGIPPCSt2GTwaaeCBkzj4W9Tw0s40Z3AutaHTFV2wLC8pPIF+yeorhpc34bkfkGFX4D6Wr6hPyw28ZQG0ojxx1Z7UZemu+EKp9bp+oN7lWWQXFy+fu4GsO/tYmUKMmrKp+P9QSwcI5lJwnOInAADwuwAAUEsBAi0DFAAIAAgAaJSxWMRxT5CdAAAAEgEAAB4AAAAAAAAAAAAgALaBAAAAAGRlYnVnYWRhcHRlcl8yLjAuMC9jb250cm9sLmx1YVBLAQItAxQACAAIAOGUv1hgUy/9aAYAAFQYAAAhAAAAAAAAAAAAIAC2gekAAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvZGF0YXN0cmluZy5sdWFQSwECLQMUAAgACABEGtJY2hn+dYIAAACjAAAAJAAAAAAAAAAAACAAtoGgBwAAZGVidWdhZGFwdGVyXzIuMC4wL2RlYnVnLWNvbnRyb2wubHVhUEsBAi0DFAAIAAgA161PWRS/kELJBAAADw4AACMAAAAAAAAAAAAgALaBdAgAAGRlYnVnYWRhcHRlcl8yLjAuMC9kZWJ1Z2FkYXB0ZXIubHVhUEsBAi0DFAAIAAgA4ZS/WBqJUMazBQAA6hcAAB8AAAAAAAAAAAAgALaBjg0AAGRlYnVnYWRhcHRlcl8yLjAuMC9kaXNwYXRjaC5sdWFQSwECLQMUAAgACADhlL9YBa7KzAcBAADcAQAAHwAAAAAAAAAAACAAtoGOEwAAZGVidWdhZGFwdGVyXzIuMC4wL2VudW11dGlsLmx1YVBLAQItAxQACAAIAEQa0lgPx4043Q4AAIg/AAAfAAAAAAAAAAAAIAC2geIUAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvZXZhbHVhdGUubHVhUEsBAi0DFAAIAAgAkA1QWfW2E/gXAQAAxgEAABwAAAAAAAAAAAAgALaBDCQAAGRlYnVnYWRhcHRlcl8yLjAuMC9pbmZvLmpzb25QSwECLQMUAAgACABWelRYizcxULUAAAB+AQAAKQAAAAAAAAAAACAAtoFtJQAAZGVidWdhZGFwdGVyXzIuMC4wL2luc3RydW1lbnQtY29udHJvbC5sdWFQSwECLQMUAAgACABaelRYCjdLQ48AAADlAAAAJgAAAAAAAAAAACAAtoF5JgAAZGVidWdhZGFwdGVyXzIuMC4wL2luc3RydW1lbnQtZGF0YS5sdWFQSwECLQMUAAgACABlelRYGhbK9VMBAACWAgAAKgAAAAAAAAAAACAAtoFcJwAAZGVidWdhZGFwdGVyXzIuMC4wL2luc3RydW1lbnQtc2V0dGluZ3MubHVhUEsBAi0DFAAIAAgA4ZS/WL2iT8HKAgAAgQoAAB8AAAAAAAAAAAAgALaBBykAAGRlYnVnYWRhcHRlcl8yLjAuMC9pdGVydXRpbC5sdWFQSwECLQMUAAgACADhlL9YmV4fGmAEAACXDAAAGwAAAAAAAAAAACAAtoEeLAAAZGVidWdhZGFwdGVyXzIuMC4wL2pzb24ubHVhUEsBAi0DFAAIAAgAk4yRT1trUFKFAgAAQAQAABoAAAAAAAAAAAAgALaBxzAAAGRlYnVnYWRhcHRlcl8yLjAuMC9MSUNFTlNFUEsBAi0DFAAIAAgA4ZS/WGifE8ywAgAAkwYAABoAAAAAAAAAAAAgALaBlDMAAGRlYnVnYWRhcHRlcl8yLjAuMC9sb2cubHVhUEsBAi0DFAAIAAgA+4tOWYTXXL+ZEQAANUYAACQAAAAAAAAAAAAgALaBjDYAAGRlYnVnYWRhcHRlcl8yLjAuMC9sdWFvYmplY3RpbmZvLmx1YVBLAQItAxQACAAIAOGUv1jyC5fmjwMAAIoOAAAcAAAAAAAAAAAAIAC2gXdIAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvbm9pc2UubHVhUEsBAi0DFAAIAAgA4ZS/WAl1FIRCAwAAkwgAACkAAAAAAAAAAAAgALaBUEwAAGRlYnVnYWRhcHRlcl8yLjAuMC9ub3JtYWxpemVMdWFTb3VyY2UubHVhUEsBAi0DFAAIAAgAsRBMWdBk3wMlBAAA8gsAABwAAAAAAAAAAAAgALaB6U8AAGRlYnVnYWRhcHRlcl8yLjAuMC9wcmludC5sdWFQSwECLQMUAAgACAD4LVJYkgNqtjEBAACMAgAAJgAAAAAAAAAAACAAtoFYVAAAZGVidWdhZGFwdGVyXzIuMC4wL3Byb2ZpbGUtY29udHJvbC5sdWFQSwECLQMUAAgACADhlL9Y55kBc7YLAACnKAAAHgAAAAAAAAAAACAAtoHdVQAAZGVidWdhZGFwdGVyXzIuMC4wL3Byb2ZpbGUubHVhUEsBAi0DFAAIAAgAILNMVmBZyLOSBAAATgwAAB8AAAAAAAAAAAAgALaB32EAAGRlYnVnYWRhcHRlcl8yLjAuMC9wcm9maWxlMi5sdWFQSwECLQMUAAgACAAuI05Y6CdQ1nABAADsAgAAHwAAAAAAAAAAACAAtoG+ZgAAZGVidWdhZGFwdGVyXzIuMC4wL3NldHRpbmdzLmx1YVBLAQItAxQACAAIAGwW5Vjs7+D7ExwAAItvAAAfAAAAAAAAAAAAIAC2gXtoAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvc3RlcHBpbmcubHVhUEsBAi0DFAAIAAgAXIpOWfH3xLwoBwAAthcAAB0AAAAAAAAAAAAgALaB24QAAGRlYnVnYWRhcHRlcl8yLjAuMC9zdGFja3MubHVhUEsBAi0DFAAIAAgAdaK0WJSXqBYvAQAANwMAABsAAAAAAAAAAAAgALaBTowAAGRlYnVnYWRhcHRlcl8yLjAuMC90ZXN0Lmx1YVBLAQItAxQACAAIAOGUv1idf4/QhQIAAE8HAAAeAAAAAAAAAAAAIAC2gcaNAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvdGhyZWFkcy5sdWFQSwECLQMUAAgACAChFZNPIzuCDxI+AAAdPgAAIAAAAAAAAAAAACAAtoGXkAAAZGVidWdhZGFwdGVyXzIuMC4wL3RodW1ibmFpbC5wbmdQSwECLQMUAAgACAB0pVxYg/wZyO8BAAC3CQAANAAAAAAAAAAAACAAtoH3zgAAZGVidWdhZGFwdGVyXzIuMC4wL3R5cGVkZWZzL2RlYnVnYWRhcHRlcnByb3RvY29sLmx1YVBLAQItAxQACAAIAACoT1nmUnCc4icAAPC7AAAgAAAAAAAAAAAAIAC2gUjRAABkZWJ1Z2FkYXB0ZXJfMi4wLjAvdmFyaWFibGVzLmx1YVBLBQYAAAAAHgAeADoJAAB4+QAAAAA=")});var xu=F((My,pm)=>{pm.exports=jn("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vHBBuEm4KNwsXBIuC1eEq8I14bpwB+ON8KPwVngnvBc+CD8JH4WfhU/CZ+GL8FX4JnwX/mCCEWEUwYrgRPAiBBEmEaIIswhJhCxCEaGK0EToIhzMZMQ0ismKyYnJiymIaRJTFNMspiSmLKYipiqmJqYupoOJRsRRRCuiE9GLGEScRIwiziImEbOIRcQqYhOxi3gwsxHzKGYrZidmL+Yg5knMUcyzmJOYs5iLmKuYm5i7mA8mGZFGkaxITiQvUhBpEimKNIuURMoiFZGqSE2kLtLBZCPyKLIV2YnsRQ4iTyJHkWeRk8hZ5CJyFbmJ3EU+mGJEGUWxojhRvChBlEmUKMosShIli1JEqaI0UbooB1ONqKOoVlQnqhc1iDqJGkWdRU2iZlGLqFXUJmoX9WCaEW0UzYrmRPOiBdEm0aJos2hJtCxaEa2K1kTroh1MN6KPolvRnehe9CD6JHoUfRY9iZ5FL6JX0ZvoXfSDWYxYRrFYsTixeLEEsUxiiWKZxZLEksVSxFLF0sTSxbLcffoXUEsHCPayQzc8AwAACQYAAFBLAQItAxQACAAIALCKTlnZ9YQOsQIAANAIAAAkAAAAAAAAAAAAIAC2gQAAAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjAvY29udHJvbC5sdWFQSwECLQMUAAgACAC0vUVYjnqNvQUBAAAQAgAAIQAAAAAAAAAAACAAtoEDAwAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4wL2RhdGEubHVhUEsBAi0DFAAIAAgAkA1QWUvrHoWaAAAA2AAAACIAAAAAAAAAAAAgALaBVwQAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuMC9pbmZvLmpzb25QSwECLQMUAAgACAAlra1WUqj09c4AAAAwAQAAMgAAAAAAAAAAACAAtoFBBQAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4wL3NjZW5hcmlvcy9ydW4vY29udHJvbC5sdWFQSwECLQMUAAgACABpiTBWlI5GUD4AAAA+AAAAOAAAAAAAAAAAACAAtoFvBgAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4wL3NjZW5hcmlvcy90ZXJtaW5hdGUvY29udHJvbC5sdWFQSwECLQMUAAgACABNgopY9MHnEycBAAByBAAANAAAAAAAAAAAACAAtoETBwAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4wL3NjZW5hcmlvcy90aHJvdy9jb250cm9sLmx1YVBLAQItAxQACAAIAA8TfVf2skM3PAMAAAkGAAAlAAAAAAAAAAAAIAC2gZwIAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjAvc2V0dGluZ3MubHVhUEsFBgAAAAAHAAcAbAIAACsMAAAAAA==")});var ai=F(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.Event=Bt.Response=Bt.Message=void 0;var Jr=class{constructor(e){this.seq=0,this.type=e}};Bt.Message=Jr;var ta=class extends Jr{constructor(e,t){super("response"),this.request_seq=e.seq,this.command=e.command,t?(this.success=!1,this.message=t):this.success=!0}};Bt.Response=ta;var ra=class extends Jr{constructor(e,t){super("event"),this.event=e,t&&(this.body=t)}};Bt.Event=ra});var ku=F(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.ProtocolServer=void 0;var gm=require("events"),Zr=ai(),na=class{get event(){return this._event||(this._event=(e,t)=>{this._listener=e,this._this=t;let n;return n={dispose:()=>{this._listener=void 0,this._this=void 0}},n}),this._event}fire(e){if(this._listener)try{this._listener.call(this._this,e)}catch{}}hasListener(){return!!this._listener}dispose(){this._listener=void 0,this._this=void 0}},si=class a extends gm.EventEmitter{constructor(){super(),this._sendMessage=new na,this._sequence=1,this._pendingRequests=new Map,this.onDidSendMessage=this._sendMessage.event}dispose(){}handleMessage(e){if(e.type==="request")this.dispatchRequest(e);else if(e.type==="response"){let t=e,n=this._pendingRequests.get(t.request_seq);n&&(this._pendingRequests.delete(t.request_seq),n(t))}}_isRunningInline(){return this._sendMessage&&this._sendMessage.hasListener()}start(e,t){this._writableStream=t,this._rawData=Buffer.alloc(0),e.on("data",n=>this._handleData(n)),e.on("close",()=>{this._emitEvent(new Zr.Event("close"))}),e.on("error",n=>{this._emitEvent(new Zr.Event("error","inStream error: "+(n&&n.message)))}),t.on("error",n=>{this._emitEvent(new Zr.Event("error","outStream error: "+(n&&n.message)))}),e.resume()}stop(){this._writableStream&&this._writableStream.end()}sendEvent(e){this._send("event",e)}sendResponse(e){e.seq>0?console.error(`attempt to send more than one response for command ${e.command}`):this._send("response",e)}sendRequest(e,t,n,i){let s={command:e};if(t&&Object.keys(t).length>0&&(s.arguments=t),this._send("request",s),i){this._pendingRequests.set(s.seq,i);let u=setTimeout(()=>{clearTimeout(u);let f=this._pendingRequests.get(s.seq);f&&(this._pendingRequests.delete(s.seq),f(new Zr.Response(s,"timeout")))},n)}}dispatchRequest(e){}_emitEvent(e){this.emit(e.event,e)}_send(e,t){if(t.type=e,t.seq=this._sequence++,this._writableStream){let n=JSON.stringify(t);this._writableStream.write(`Content-Length: ${Buffer.byteLength(n,"utf8")}\r
2910
2985
  \r
2911
2986
  ${n}`,"utf8")}this._sendMessage.fire(t)}_handleData(e){for(this._rawData=Buffer.concat([this._rawData,e]);;){if(this._contentLength>=0){if(this._rawData.length>=this._contentLength){let t=this._rawData.toString("utf8",0,this._contentLength);if(this._rawData=this._rawData.slice(this._contentLength),this._contentLength=-1,t.length>0)try{let n=JSON.parse(t);this.handleMessage(n)}catch(n){this._emitEvent(new Zr.Event("error","Error handling data: "+(n&&n.message)))}continue}}else{let t=this._rawData.indexOf(a.TWO_CRLF);if(t!==-1){let i=this._rawData.toString("utf8",0,t).split(`\r
2912
2987
  `);for(let s=0;s<i.length;s++){let u=i[s].split(/: +/);u[0]=="Content-Length"&&(this._contentLength=+u[1])}this._rawData=this._rawData.slice(t+a.TWO_CRLF.length);continue}}break}}};li.ProtocolServer=si;si.TWO_CRLF=`\r
2913
2988
  \r
2914
- `});var Iu=F(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.runDebugAdapter=void 0;var _m=require("net");function bm(a){let e=0;if(process.argv.slice(2).forEach(function(n,i,s){let u=/^--server=(\d{4,5})$/.exec(n);u&&(e=parseInt(u[1],10))}),e>0)console.error(`waiting for debug protocol on port ${e}`),_m.createServer(n=>{console.error(">> accepted connection from client"),n.on("end",()=>{console.error(`>> client connection closed
2915
- `)});let i=new a(!1,!0);i.setRunAsServer(!0),i.start(n,n)}).listen(e);else{let n=new a(!1);process.on("SIGTERM",()=>{n.shutdown()}),n.start(process.stdin,process.stdout)}}ui.runDebugAdapter=bm});var di=F(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.DebugSession=q.ErrorDestination=q.MemoryEvent=q.InvalidatedEvent=q.ProgressEndEvent=q.ProgressUpdateEvent=q.ProgressStartEvent=q.CapabilitiesEvent=q.LoadedSourceEvent=q.ModuleEvent=q.BreakpointEvent=q.ThreadEvent=q.OutputEvent=q.ExitedEvent=q.TerminatedEvent=q.InitializedEvent=q.ContinuedEvent=q.StoppedEvent=q.CompletionItem=q.Module=q.Breakpoint=q.Variable=q.Thread=q.StackFrame=q.Scope=q.Source=void 0;var ym=ku(),he=ai(),wm=Iu(),Cu=require("url"),ia=class{constructor(e,t,n=0,i,s){this.name=e,this.path=t,this.sourceReference=n,i&&(this.origin=i),s&&(this.adapterData=s)}};q.Source=ia;var oa=class{constructor(e,t,n=!1){this.name=e,this.variablesReference=t,this.expensive=n}};q.Scope=oa;var aa=class{constructor(e,t,n,i=0,s=0){this.id=e,this.source=n,this.line=i,this.column=s,this.name=t}};q.StackFrame=aa;var sa=class{constructor(e,t){this.id=e,t?this.name=t:this.name="Thread #"+e}};q.Thread=sa;var la=class{constructor(e,t,n=0,i,s){this.name=e,this.value=t,this.variablesReference=n,typeof s=="number"&&(this.namedVariables=s),typeof i=="number"&&(this.indexedVariables=i)}};q.Variable=la;var ua=class{constructor(e,t,n,i){this.verified=e;let s=this;typeof t=="number"&&(s.line=t),typeof n=="number"&&(s.column=n),i&&(s.source=i)}setId(e){this.id=e}};q.Breakpoint=ua;var ca=class{constructor(e,t){this.id=e,this.name=t}};q.Module=ca;var da=class{constructor(e,t,n=0){this.label=e,this.start=t,this.length=n}};q.CompletionItem=da;var fa=class extends he.Event{constructor(e,t,n){super("stopped"),this.body={reason:e},typeof t=="number"&&(this.body.threadId=t),typeof n=="string"&&(this.body.text=n)}};q.StoppedEvent=fa;var pa=class extends he.Event{constructor(e,t){super("continued"),this.body={threadId:e},typeof t=="boolean"&&(this.body.allThreadsContinued=t)}};q.ContinuedEvent=pa;var ha=class extends he.Event{constructor(){super("initialized")}};q.InitializedEvent=ha;var ma=class extends he.Event{constructor(e){if(super("terminated"),typeof e=="boolean"||e){let t=this;t.body={restart:e}}}};q.TerminatedEvent=ma;var ga=class extends he.Event{constructor(e){super("exited"),this.body={exitCode:e}}};q.ExitedEvent=ga;var _a=class extends he.Event{constructor(e,t="console",n){super("output"),this.body={category:t,output:e},n!==void 0&&(this.body.data=n)}};q.OutputEvent=_a;var ba=class extends he.Event{constructor(e,t){super("thread"),this.body={reason:e,threadId:t}}};q.ThreadEvent=ba;var ya=class extends he.Event{constructor(e,t){super("breakpoint"),this.body={reason:e,breakpoint:t}}};q.BreakpointEvent=ya;var wa=class extends he.Event{constructor(e,t){super("module"),this.body={reason:e,module:t}}};q.ModuleEvent=wa;var va=class extends he.Event{constructor(e,t){super("loadedSource"),this.body={reason:e,source:t}}};q.LoadedSourceEvent=va;var Sa=class extends he.Event{constructor(e){super("capabilities"),this.body={capabilities:e}}};q.CapabilitiesEvent=Sa;var Ra=class extends he.Event{constructor(e,t,n){super("progressStart"),this.body={progressId:e,title:t},typeof n=="string"&&(this.body.message=n)}};q.ProgressStartEvent=Ra;var Ea=class extends he.Event{constructor(e,t){super("progressUpdate"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressUpdateEvent=Ea;var Pa=class extends he.Event{constructor(e,t){super("progressEnd"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressEndEvent=Pa;var La=class extends he.Event{constructor(e,t,n){super("invalidated"),this.body={},e&&(this.body.areas=e),t&&(this.body.threadId=t),n&&(this.body.stackFrameId=n)}};q.InvalidatedEvent=La;var xa=class extends he.Event{constructor(e,t,n){super("memory"),this.body={memoryReference:e,offset:t,count:n}}};q.MemoryEvent=xa;var nr;(function(a){a[a.User=1]="User",a[a.Telemetry=2]="Telemetry"})(nr=q.ErrorDestination||(q.ErrorDestination={}));var ci=class a extends ym.ProtocolServer{constructor(e,t){super();let n=typeof e=="boolean"?e:!1;this._debuggerLinesStartAt1=n,this._debuggerColumnsStartAt1=n,this._debuggerPathsAreURIs=!1,this._clientLinesStartAt1=!0,this._clientColumnsStartAt1=!0,this._clientPathsAreURIs=!1,this._isServer=typeof t=="boolean"?t:!1,this.on("close",()=>{this.shutdown()}),this.on("error",i=>{this.shutdown()})}setDebuggerPathFormat(e){this._debuggerPathsAreURIs=e!=="path"}setDebuggerLinesStartAt1(e){this._debuggerLinesStartAt1=e}setDebuggerColumnsStartAt1(e){this._debuggerColumnsStartAt1=e}setRunAsServer(e){this._isServer=e}static run(e){(0,wm.runDebugAdapter)(e)}shutdown(){this._isServer||this._isRunningInline()||setTimeout(()=>{process.exit(0)},100)}sendErrorResponse(e,t,n,i,s=nr.User){let u;typeof t=="number"?(u={id:t,format:n},i&&(u.variables=i),s&nr.User&&(u.showUser=!0),s&nr.Telemetry&&(u.sendTelemetry=!0)):u=t,e.success=!1,e.message=a.formatPII(u.format,!0,u.variables),e.body||(e.body={}),e.body.error=u,this.sendResponse(e)}runInTerminalRequest(e,t,n){this.sendRequest("runInTerminal",e,t,n)}dispatchRequest(e){let t=new he.Response(e);try{if(e.command==="initialize"){var n=e.arguments;if(typeof n.linesStartAt1=="boolean"&&(this._clientLinesStartAt1=n.linesStartAt1),typeof n.columnsStartAt1=="boolean"&&(this._clientColumnsStartAt1=n.columnsStartAt1),n.pathFormat!=="path")this.sendErrorResponse(t,2018,"debug adapter only supports native paths",null,nr.Telemetry);else{let i=t;i.body={},this.initializeRequest(i,n)}}else e.command==="launch"?this.launchRequest(t,e.arguments,e):e.command==="attach"?this.attachRequest(t,e.arguments,e):e.command==="disconnect"?this.disconnectRequest(t,e.arguments,e):e.command==="terminate"?this.terminateRequest(t,e.arguments,e):e.command==="restart"?this.restartRequest(t,e.arguments,e):e.command==="setBreakpoints"?this.setBreakPointsRequest(t,e.arguments,e):e.command==="setFunctionBreakpoints"?this.setFunctionBreakPointsRequest(t,e.arguments,e):e.command==="setExceptionBreakpoints"?this.setExceptionBreakPointsRequest(t,e.arguments,e):e.command==="configurationDone"?this.configurationDoneRequest(t,e.arguments,e):e.command==="continue"?this.continueRequest(t,e.arguments,e):e.command==="next"?this.nextRequest(t,e.arguments,e):e.command==="stepIn"?this.stepInRequest(t,e.arguments,e):e.command==="stepOut"?this.stepOutRequest(t,e.arguments,e):e.command==="stepBack"?this.stepBackRequest(t,e.arguments,e):e.command==="reverseContinue"?this.reverseContinueRequest(t,e.arguments,e):e.command==="restartFrame"?this.restartFrameRequest(t,e.arguments,e):e.command==="goto"?this.gotoRequest(t,e.arguments,e):e.command==="pause"?this.pauseRequest(t,e.arguments,e):e.command==="stackTrace"?this.stackTraceRequest(t,e.arguments,e):e.command==="scopes"?this.scopesRequest(t,e.arguments,e):e.command==="variables"?this.variablesRequest(t,e.arguments,e):e.command==="setVariable"?this.setVariableRequest(t,e.arguments,e):e.command==="setExpression"?this.setExpressionRequest(t,e.arguments,e):e.command==="source"?this.sourceRequest(t,e.arguments,e):e.command==="threads"?this.threadsRequest(t,e):e.command==="terminateThreads"?this.terminateThreadsRequest(t,e.arguments,e):e.command==="evaluate"?this.evaluateRequest(t,e.arguments,e):e.command==="stepInTargets"?this.stepInTargetsRequest(t,e.arguments,e):e.command==="gotoTargets"?this.gotoTargetsRequest(t,e.arguments,e):e.command==="completions"?this.completionsRequest(t,e.arguments,e):e.command==="exceptionInfo"?this.exceptionInfoRequest(t,e.arguments,e):e.command==="loadedSources"?this.loadedSourcesRequest(t,e.arguments,e):e.command==="dataBreakpointInfo"?this.dataBreakpointInfoRequest(t,e.arguments,e):e.command==="setDataBreakpoints"?this.setDataBreakpointsRequest(t,e.arguments,e):e.command==="readMemory"?this.readMemoryRequest(t,e.arguments,e):e.command==="writeMemory"?this.writeMemoryRequest(t,e.arguments,e):e.command==="disassemble"?this.disassembleRequest(t,e.arguments,e):e.command==="cancel"?this.cancelRequest(t,e.arguments,e):e.command==="breakpointLocations"?this.breakpointLocationsRequest(t,e.arguments,e):e.command==="setInstructionBreakpoints"?this.setInstructionBreakpointsRequest(t,e.arguments,e):this.customRequest(e.command,t,e.arguments,e)}catch(i){this.sendErrorResponse(t,1104,"{_stack}",{_exception:i.message,_stack:i.stack},nr.Telemetry)}}initializeRequest(e,t){e.body.supportsConditionalBreakpoints=!1,e.body.supportsHitConditionalBreakpoints=!1,e.body.supportsFunctionBreakpoints=!1,e.body.supportsConfigurationDoneRequest=!0,e.body.supportsEvaluateForHovers=!1,e.body.supportsStepBack=!1,e.body.supportsSetVariable=!1,e.body.supportsRestartFrame=!1,e.body.supportsStepInTargetsRequest=!1,e.body.supportsGotoTargetsRequest=!1,e.body.supportsCompletionsRequest=!1,e.body.supportsRestartRequest=!1,e.body.supportsExceptionOptions=!1,e.body.supportsValueFormattingOptions=!1,e.body.supportsExceptionInfoRequest=!1,e.body.supportTerminateDebuggee=!1,e.body.supportsDelayedStackTraceLoading=!1,e.body.supportsLoadedSourcesRequest=!1,e.body.supportsLogPoints=!1,e.body.supportsTerminateThreadsRequest=!1,e.body.supportsSetExpression=!1,e.body.supportsTerminateRequest=!1,e.body.supportsDataBreakpoints=!1,e.body.supportsReadMemoryRequest=!1,e.body.supportsDisassembleRequest=!1,e.body.supportsCancelRequest=!1,e.body.supportsBreakpointLocationsRequest=!1,e.body.supportsClipboardContext=!1,e.body.supportsSteppingGranularity=!1,e.body.supportsInstructionBreakpoints=!1,e.body.supportsExceptionFilterOptions=!1,this.sendResponse(e)}disconnectRequest(e,t,n){this.sendResponse(e),this.shutdown()}launchRequest(e,t,n){this.sendResponse(e)}attachRequest(e,t,n){this.sendResponse(e)}terminateRequest(e,t,n){this.sendResponse(e)}restartRequest(e,t,n){this.sendResponse(e)}setBreakPointsRequest(e,t,n){this.sendResponse(e)}setFunctionBreakPointsRequest(e,t,n){this.sendResponse(e)}setExceptionBreakPointsRequest(e,t,n){this.sendResponse(e)}configurationDoneRequest(e,t,n){this.sendResponse(e)}continueRequest(e,t,n){this.sendResponse(e)}nextRequest(e,t,n){this.sendResponse(e)}stepInRequest(e,t,n){this.sendResponse(e)}stepOutRequest(e,t,n){this.sendResponse(e)}stepBackRequest(e,t,n){this.sendResponse(e)}reverseContinueRequest(e,t,n){this.sendResponse(e)}restartFrameRequest(e,t,n){this.sendResponse(e)}gotoRequest(e,t,n){this.sendResponse(e)}pauseRequest(e,t,n){this.sendResponse(e)}sourceRequest(e,t,n){this.sendResponse(e)}threadsRequest(e,t){this.sendResponse(e)}terminateThreadsRequest(e,t,n){this.sendResponse(e)}stackTraceRequest(e,t,n){this.sendResponse(e)}scopesRequest(e,t,n){this.sendResponse(e)}variablesRequest(e,t,n){this.sendResponse(e)}setVariableRequest(e,t,n){this.sendResponse(e)}setExpressionRequest(e,t,n){this.sendResponse(e)}evaluateRequest(e,t,n){this.sendResponse(e)}stepInTargetsRequest(e,t,n){this.sendResponse(e)}gotoTargetsRequest(e,t,n){this.sendResponse(e)}completionsRequest(e,t,n){this.sendResponse(e)}exceptionInfoRequest(e,t,n){this.sendResponse(e)}loadedSourcesRequest(e,t,n){this.sendResponse(e)}dataBreakpointInfoRequest(e,t,n){this.sendResponse(e)}setDataBreakpointsRequest(e,t,n){this.sendResponse(e)}readMemoryRequest(e,t,n){this.sendResponse(e)}writeMemoryRequest(e,t,n){this.sendResponse(e)}disassembleRequest(e,t,n){this.sendResponse(e)}cancelRequest(e,t,n){this.sendResponse(e)}breakpointLocationsRequest(e,t,n){this.sendResponse(e)}setInstructionBreakpointsRequest(e,t,n){this.sendResponse(e)}customRequest(e,t,n,i){this.sendErrorResponse(t,1014,"unrecognized request",null,nr.Telemetry)}convertClientLineToDebugger(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e+1:this._clientLinesStartAt1?e-1:e}convertDebuggerLineToClient(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e-1:this._clientLinesStartAt1?e+1:e}convertClientColumnToDebugger(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e+1:this._clientColumnsStartAt1?e-1:e}convertDebuggerColumnToClient(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e-1:this._clientColumnsStartAt1?e+1:e}convertClientPathToDebugger(e){return this._clientPathsAreURIs!==this._debuggerPathsAreURIs?this._clientPathsAreURIs?a.uri2path(e):a.path2uri(e):e}convertDebuggerPathToClient(e){return this._debuggerPathsAreURIs!==this._clientPathsAreURIs?this._debuggerPathsAreURIs?a.uri2path(e):a.path2uri(e):e}static path2uri(e){process.platform==="win32"&&(/^[A-Z]:/.test(e)&&(e=e[0].toLowerCase()+e.substr(1)),e=e.replace(/\\/g,"/")),e=encodeURI(e);let t=new Cu.URL("file:");return t.pathname=e,t.toString()}static uri2path(e){let t=new Cu.URL(e),n=decodeURIComponent(t.pathname);return process.platform==="win32"&&(/^\/[a-zA-Z]:/.test(n)&&(n=n[1].toLowerCase()+n.substr(2)),n=n.replace(/\//g,"\\")),n}static formatPII(e,t,n){return e.replace(a._formatPIIRegexp,function(i,s){return t&&s.length>0&&s[0]!=="_"?i:n[s]&&n.hasOwnProperty(s)?n[s]:i})}};q.DebugSession=ci;ci._formatPIIRegexp=/{([^}]+)}/g});var Fu=F(pi=>{"use strict";Object.defineProperty(pi,"__esModule",{value:!0});pi.InternalLogger=void 0;var Du=require("fs"),$u=require("path"),De=hi(),Aa=class{constructor(e,t){this.beforeExitCallback=()=>this.dispose(),this._logCallback=e,this._logToConsole=t,this._minLogLevel=De.LogLevel.Warn,this.disposeCallback=(n,i)=>{this.dispose(),i=i||2,i+=128,process.exit(i)}}async setup(e){if(this._minLogLevel=e.consoleMinLogLevel,this._prependTimestamp=e.prependTimestamp,e.logFilePath)if(!$u.isAbsolute(e.logFilePath))this.log(`logFilePath must be an absolute path: ${e.logFilePath}`,De.LogLevel.Error);else{let t=n=>this.sendLog(`Error creating log file at path: ${e.logFilePath}. Error: ${n.toString()}
2989
+ `});var Cu=F(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.runDebugAdapter=void 0;var _m=require("net");function bm(a){let e=0;if(process.argv.slice(2).forEach(function(n,i,s){let u=/^--server=(\d{4,5})$/.exec(n);u&&(e=parseInt(u[1],10))}),e>0)console.error(`waiting for debug protocol on port ${e}`),_m.createServer(n=>{console.error(">> accepted connection from client"),n.on("end",()=>{console.error(`>> client connection closed
2990
+ `)});let i=new a(!1,!0);i.setRunAsServer(!0),i.start(n,n)}).listen(e);else{let n=new a(!1);process.on("SIGTERM",()=>{n.shutdown()}),n.start(process.stdin,process.stdout)}}ui.runDebugAdapter=bm});var di=F(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.DebugSession=q.ErrorDestination=q.MemoryEvent=q.InvalidatedEvent=q.ProgressEndEvent=q.ProgressUpdateEvent=q.ProgressStartEvent=q.CapabilitiesEvent=q.LoadedSourceEvent=q.ModuleEvent=q.BreakpointEvent=q.ThreadEvent=q.OutputEvent=q.ExitedEvent=q.TerminatedEvent=q.InitializedEvent=q.ContinuedEvent=q.StoppedEvent=q.CompletionItem=q.Module=q.Breakpoint=q.Variable=q.Thread=q.StackFrame=q.Scope=q.Source=void 0;var ym=ku(),he=ai(),wm=Cu(),Iu=require("url"),ia=class{constructor(e,t,n=0,i,s){this.name=e,this.path=t,this.sourceReference=n,i&&(this.origin=i),s&&(this.adapterData=s)}};q.Source=ia;var oa=class{constructor(e,t,n=!1){this.name=e,this.variablesReference=t,this.expensive=n}};q.Scope=oa;var aa=class{constructor(e,t,n,i=0,s=0){this.id=e,this.source=n,this.line=i,this.column=s,this.name=t}};q.StackFrame=aa;var sa=class{constructor(e,t){this.id=e,t?this.name=t:this.name="Thread #"+e}};q.Thread=sa;var la=class{constructor(e,t,n=0,i,s){this.name=e,this.value=t,this.variablesReference=n,typeof s=="number"&&(this.namedVariables=s),typeof i=="number"&&(this.indexedVariables=i)}};q.Variable=la;var ua=class{constructor(e,t,n,i){this.verified=e;let s=this;typeof t=="number"&&(s.line=t),typeof n=="number"&&(s.column=n),i&&(s.source=i)}setId(e){this.id=e}};q.Breakpoint=ua;var ca=class{constructor(e,t){this.id=e,this.name=t}};q.Module=ca;var da=class{constructor(e,t,n=0){this.label=e,this.start=t,this.length=n}};q.CompletionItem=da;var fa=class extends he.Event{constructor(e,t,n){super("stopped"),this.body={reason:e},typeof t=="number"&&(this.body.threadId=t),typeof n=="string"&&(this.body.text=n)}};q.StoppedEvent=fa;var pa=class extends he.Event{constructor(e,t){super("continued"),this.body={threadId:e},typeof t=="boolean"&&(this.body.allThreadsContinued=t)}};q.ContinuedEvent=pa;var ha=class extends he.Event{constructor(){super("initialized")}};q.InitializedEvent=ha;var ma=class extends he.Event{constructor(e){if(super("terminated"),typeof e=="boolean"||e){let t=this;t.body={restart:e}}}};q.TerminatedEvent=ma;var ga=class extends he.Event{constructor(e){super("exited"),this.body={exitCode:e}}};q.ExitedEvent=ga;var _a=class extends he.Event{constructor(e,t="console",n){super("output"),this.body={category:t,output:e},n!==void 0&&(this.body.data=n)}};q.OutputEvent=_a;var ba=class extends he.Event{constructor(e,t){super("thread"),this.body={reason:e,threadId:t}}};q.ThreadEvent=ba;var ya=class extends he.Event{constructor(e,t){super("breakpoint"),this.body={reason:e,breakpoint:t}}};q.BreakpointEvent=ya;var wa=class extends he.Event{constructor(e,t){super("module"),this.body={reason:e,module:t}}};q.ModuleEvent=wa;var va=class extends he.Event{constructor(e,t){super("loadedSource"),this.body={reason:e,source:t}}};q.LoadedSourceEvent=va;var Sa=class extends he.Event{constructor(e){super("capabilities"),this.body={capabilities:e}}};q.CapabilitiesEvent=Sa;var Ra=class extends he.Event{constructor(e,t,n){super("progressStart"),this.body={progressId:e,title:t},typeof n=="string"&&(this.body.message=n)}};q.ProgressStartEvent=Ra;var Pa=class extends he.Event{constructor(e,t){super("progressUpdate"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressUpdateEvent=Pa;var Ea=class extends he.Event{constructor(e,t){super("progressEnd"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressEndEvent=Ea;var La=class extends he.Event{constructor(e,t,n){super("invalidated"),this.body={},e&&(this.body.areas=e),t&&(this.body.threadId=t),n&&(this.body.stackFrameId=n)}};q.InvalidatedEvent=La;var xa=class extends he.Event{constructor(e,t,n){super("memory"),this.body={memoryReference:e,offset:t,count:n}}};q.MemoryEvent=xa;var nr;(function(a){a[a.User=1]="User",a[a.Telemetry=2]="Telemetry"})(nr=q.ErrorDestination||(q.ErrorDestination={}));var ci=class a extends ym.ProtocolServer{constructor(e,t){super();let n=typeof e=="boolean"?e:!1;this._debuggerLinesStartAt1=n,this._debuggerColumnsStartAt1=n,this._debuggerPathsAreURIs=!1,this._clientLinesStartAt1=!0,this._clientColumnsStartAt1=!0,this._clientPathsAreURIs=!1,this._isServer=typeof t=="boolean"?t:!1,this.on("close",()=>{this.shutdown()}),this.on("error",i=>{this.shutdown()})}setDebuggerPathFormat(e){this._debuggerPathsAreURIs=e!=="path"}setDebuggerLinesStartAt1(e){this._debuggerLinesStartAt1=e}setDebuggerColumnsStartAt1(e){this._debuggerColumnsStartAt1=e}setRunAsServer(e){this._isServer=e}static run(e){(0,wm.runDebugAdapter)(e)}shutdown(){this._isServer||this._isRunningInline()||setTimeout(()=>{process.exit(0)},100)}sendErrorResponse(e,t,n,i,s=nr.User){let u;typeof t=="number"?(u={id:t,format:n},i&&(u.variables=i),s&nr.User&&(u.showUser=!0),s&nr.Telemetry&&(u.sendTelemetry=!0)):u=t,e.success=!1,e.message=a.formatPII(u.format,!0,u.variables),e.body||(e.body={}),e.body.error=u,this.sendResponse(e)}runInTerminalRequest(e,t,n){this.sendRequest("runInTerminal",e,t,n)}dispatchRequest(e){let t=new he.Response(e);try{if(e.command==="initialize"){var n=e.arguments;if(typeof n.linesStartAt1=="boolean"&&(this._clientLinesStartAt1=n.linesStartAt1),typeof n.columnsStartAt1=="boolean"&&(this._clientColumnsStartAt1=n.columnsStartAt1),n.pathFormat!=="path")this.sendErrorResponse(t,2018,"debug adapter only supports native paths",null,nr.Telemetry);else{let i=t;i.body={},this.initializeRequest(i,n)}}else e.command==="launch"?this.launchRequest(t,e.arguments,e):e.command==="attach"?this.attachRequest(t,e.arguments,e):e.command==="disconnect"?this.disconnectRequest(t,e.arguments,e):e.command==="terminate"?this.terminateRequest(t,e.arguments,e):e.command==="restart"?this.restartRequest(t,e.arguments,e):e.command==="setBreakpoints"?this.setBreakPointsRequest(t,e.arguments,e):e.command==="setFunctionBreakpoints"?this.setFunctionBreakPointsRequest(t,e.arguments,e):e.command==="setExceptionBreakpoints"?this.setExceptionBreakPointsRequest(t,e.arguments,e):e.command==="configurationDone"?this.configurationDoneRequest(t,e.arguments,e):e.command==="continue"?this.continueRequest(t,e.arguments,e):e.command==="next"?this.nextRequest(t,e.arguments,e):e.command==="stepIn"?this.stepInRequest(t,e.arguments,e):e.command==="stepOut"?this.stepOutRequest(t,e.arguments,e):e.command==="stepBack"?this.stepBackRequest(t,e.arguments,e):e.command==="reverseContinue"?this.reverseContinueRequest(t,e.arguments,e):e.command==="restartFrame"?this.restartFrameRequest(t,e.arguments,e):e.command==="goto"?this.gotoRequest(t,e.arguments,e):e.command==="pause"?this.pauseRequest(t,e.arguments,e):e.command==="stackTrace"?this.stackTraceRequest(t,e.arguments,e):e.command==="scopes"?this.scopesRequest(t,e.arguments,e):e.command==="variables"?this.variablesRequest(t,e.arguments,e):e.command==="setVariable"?this.setVariableRequest(t,e.arguments,e):e.command==="setExpression"?this.setExpressionRequest(t,e.arguments,e):e.command==="source"?this.sourceRequest(t,e.arguments,e):e.command==="threads"?this.threadsRequest(t,e):e.command==="terminateThreads"?this.terminateThreadsRequest(t,e.arguments,e):e.command==="evaluate"?this.evaluateRequest(t,e.arguments,e):e.command==="stepInTargets"?this.stepInTargetsRequest(t,e.arguments,e):e.command==="gotoTargets"?this.gotoTargetsRequest(t,e.arguments,e):e.command==="completions"?this.completionsRequest(t,e.arguments,e):e.command==="exceptionInfo"?this.exceptionInfoRequest(t,e.arguments,e):e.command==="loadedSources"?this.loadedSourcesRequest(t,e.arguments,e):e.command==="dataBreakpointInfo"?this.dataBreakpointInfoRequest(t,e.arguments,e):e.command==="setDataBreakpoints"?this.setDataBreakpointsRequest(t,e.arguments,e):e.command==="readMemory"?this.readMemoryRequest(t,e.arguments,e):e.command==="writeMemory"?this.writeMemoryRequest(t,e.arguments,e):e.command==="disassemble"?this.disassembleRequest(t,e.arguments,e):e.command==="cancel"?this.cancelRequest(t,e.arguments,e):e.command==="breakpointLocations"?this.breakpointLocationsRequest(t,e.arguments,e):e.command==="setInstructionBreakpoints"?this.setInstructionBreakpointsRequest(t,e.arguments,e):this.customRequest(e.command,t,e.arguments,e)}catch(i){this.sendErrorResponse(t,1104,"{_stack}",{_exception:i.message,_stack:i.stack},nr.Telemetry)}}initializeRequest(e,t){e.body.supportsConditionalBreakpoints=!1,e.body.supportsHitConditionalBreakpoints=!1,e.body.supportsFunctionBreakpoints=!1,e.body.supportsConfigurationDoneRequest=!0,e.body.supportsEvaluateForHovers=!1,e.body.supportsStepBack=!1,e.body.supportsSetVariable=!1,e.body.supportsRestartFrame=!1,e.body.supportsStepInTargetsRequest=!1,e.body.supportsGotoTargetsRequest=!1,e.body.supportsCompletionsRequest=!1,e.body.supportsRestartRequest=!1,e.body.supportsExceptionOptions=!1,e.body.supportsValueFormattingOptions=!1,e.body.supportsExceptionInfoRequest=!1,e.body.supportTerminateDebuggee=!1,e.body.supportsDelayedStackTraceLoading=!1,e.body.supportsLoadedSourcesRequest=!1,e.body.supportsLogPoints=!1,e.body.supportsTerminateThreadsRequest=!1,e.body.supportsSetExpression=!1,e.body.supportsTerminateRequest=!1,e.body.supportsDataBreakpoints=!1,e.body.supportsReadMemoryRequest=!1,e.body.supportsDisassembleRequest=!1,e.body.supportsCancelRequest=!1,e.body.supportsBreakpointLocationsRequest=!1,e.body.supportsClipboardContext=!1,e.body.supportsSteppingGranularity=!1,e.body.supportsInstructionBreakpoints=!1,e.body.supportsExceptionFilterOptions=!1,this.sendResponse(e)}disconnectRequest(e,t,n){this.sendResponse(e),this.shutdown()}launchRequest(e,t,n){this.sendResponse(e)}attachRequest(e,t,n){this.sendResponse(e)}terminateRequest(e,t,n){this.sendResponse(e)}restartRequest(e,t,n){this.sendResponse(e)}setBreakPointsRequest(e,t,n){this.sendResponse(e)}setFunctionBreakPointsRequest(e,t,n){this.sendResponse(e)}setExceptionBreakPointsRequest(e,t,n){this.sendResponse(e)}configurationDoneRequest(e,t,n){this.sendResponse(e)}continueRequest(e,t,n){this.sendResponse(e)}nextRequest(e,t,n){this.sendResponse(e)}stepInRequest(e,t,n){this.sendResponse(e)}stepOutRequest(e,t,n){this.sendResponse(e)}stepBackRequest(e,t,n){this.sendResponse(e)}reverseContinueRequest(e,t,n){this.sendResponse(e)}restartFrameRequest(e,t,n){this.sendResponse(e)}gotoRequest(e,t,n){this.sendResponse(e)}pauseRequest(e,t,n){this.sendResponse(e)}sourceRequest(e,t,n){this.sendResponse(e)}threadsRequest(e,t){this.sendResponse(e)}terminateThreadsRequest(e,t,n){this.sendResponse(e)}stackTraceRequest(e,t,n){this.sendResponse(e)}scopesRequest(e,t,n){this.sendResponse(e)}variablesRequest(e,t,n){this.sendResponse(e)}setVariableRequest(e,t,n){this.sendResponse(e)}setExpressionRequest(e,t,n){this.sendResponse(e)}evaluateRequest(e,t,n){this.sendResponse(e)}stepInTargetsRequest(e,t,n){this.sendResponse(e)}gotoTargetsRequest(e,t,n){this.sendResponse(e)}completionsRequest(e,t,n){this.sendResponse(e)}exceptionInfoRequest(e,t,n){this.sendResponse(e)}loadedSourcesRequest(e,t,n){this.sendResponse(e)}dataBreakpointInfoRequest(e,t,n){this.sendResponse(e)}setDataBreakpointsRequest(e,t,n){this.sendResponse(e)}readMemoryRequest(e,t,n){this.sendResponse(e)}writeMemoryRequest(e,t,n){this.sendResponse(e)}disassembleRequest(e,t,n){this.sendResponse(e)}cancelRequest(e,t,n){this.sendResponse(e)}breakpointLocationsRequest(e,t,n){this.sendResponse(e)}setInstructionBreakpointsRequest(e,t,n){this.sendResponse(e)}customRequest(e,t,n,i){this.sendErrorResponse(t,1014,"unrecognized request",null,nr.Telemetry)}convertClientLineToDebugger(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e+1:this._clientLinesStartAt1?e-1:e}convertDebuggerLineToClient(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e-1:this._clientLinesStartAt1?e+1:e}convertClientColumnToDebugger(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e+1:this._clientColumnsStartAt1?e-1:e}convertDebuggerColumnToClient(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e-1:this._clientColumnsStartAt1?e+1:e}convertClientPathToDebugger(e){return this._clientPathsAreURIs!==this._debuggerPathsAreURIs?this._clientPathsAreURIs?a.uri2path(e):a.path2uri(e):e}convertDebuggerPathToClient(e){return this._debuggerPathsAreURIs!==this._clientPathsAreURIs?this._debuggerPathsAreURIs?a.uri2path(e):a.path2uri(e):e}static path2uri(e){process.platform==="win32"&&(/^[A-Z]:/.test(e)&&(e=e[0].toLowerCase()+e.substr(1)),e=e.replace(/\\/g,"/")),e=encodeURI(e);let t=new Iu.URL("file:");return t.pathname=e,t.toString()}static uri2path(e){let t=new Iu.URL(e),n=decodeURIComponent(t.pathname);return process.platform==="win32"&&(/^\/[a-zA-Z]:/.test(n)&&(n=n[1].toLowerCase()+n.substr(2)),n=n.replace(/\//g,"\\")),n}static formatPII(e,t,n){return e.replace(a._formatPIIRegexp,function(i,s){return t&&s.length>0&&s[0]!=="_"?i:n[s]&&n.hasOwnProperty(s)?n[s]:i})}};q.DebugSession=ci;ci._formatPIIRegexp=/{([^}]+)}/g});var Fu=F(pi=>{"use strict";Object.defineProperty(pi,"__esModule",{value:!0});pi.InternalLogger=void 0;var Du=require("fs"),$u=require("path"),De=hi(),Aa=class{constructor(e,t){this.beforeExitCallback=()=>this.dispose(),this._logCallback=e,this._logToConsole=t,this._minLogLevel=De.LogLevel.Warn,this.disposeCallback=(n,i)=>{this.dispose(),i=i||2,i+=128,process.exit(i)}}async setup(e){if(this._minLogLevel=e.consoleMinLogLevel,this._prependTimestamp=e.prependTimestamp,e.logFilePath)if(!$u.isAbsolute(e.logFilePath))this.log(`logFilePath must be an absolute path: ${e.logFilePath}`,De.LogLevel.Error);else{let t=n=>this.sendLog(`Error creating log file at path: ${e.logFilePath}. Error: ${n.toString()}
2916
2991
  `,De.LogLevel.Error);try{await Du.promises.mkdir($u.dirname(e.logFilePath),{recursive:!0}),this.log(`Verbose logs are written to:
2917
2992
  `,De.LogLevel.Warn),this.log(e.logFilePath+`
2918
2993
  `,De.LogLevel.Warn),this._logFileStream=Du.createWriteStream(e.logFilePath),this.logDateTime(),this.setupShutdownListeners(),this._logFileStream.on("error",n=>{t(n)})}catch(n){t(n)}}}logDateTime(){let e=new Date,n=e.getUTCFullYear()+`-${e.getUTCMonth()+1}-`+e.getUTCDate()+", "+Ou();this.log(n+`
2919
2994
  `,De.LogLevel.Verbose,!1)}setupShutdownListeners(){process.on("beforeExit",this.beforeExitCallback),process.on("SIGTERM",this.disposeCallback),process.on("SIGINT",this.disposeCallback)}removeShutdownListeners(){process.removeListener("beforeExit",this.beforeExitCallback),process.removeListener("SIGTERM",this.disposeCallback),process.removeListener("SIGINT",this.disposeCallback)}dispose(){return new Promise(e=>{this.removeShutdownListeners(),this._logFileStream?(this._logFileStream.end(e),this._logFileStream=null):e()})}log(e,t,n=!0){if(this._minLogLevel!==De.LogLevel.Stop){if(t>=this._minLogLevel&&this.sendLog(e,t),this._logToConsole){let i=t===De.LogLevel.Error?console.error:t===De.LogLevel.Warn?console.warn:null;i&&i((0,De.trimLastNewline)(e))}t===De.LogLevel.Error&&(e=`[${De.LogLevel[t]}] ${e}`),this._prependTimestamp&&n&&(e="["+Ou()+"] "+e),this._logFileStream&&this._logFileStream.write(e)}}sendLog(e,t){if(e.length>1500){let n=!!e.match(/(\n|\r\n)$/);e=e.substr(0,1500)+"[...]",n&&(e=e+`
2920
2995
  `)}if(this._logCallback){let n=new De.LogOutputEvent(e,t);this._logCallback(n)}}};pi.InternalLogger=Aa;function Ou(){let a=new Date,e=fi(2,String(a.getUTCHours())),t=fi(2,String(a.getUTCMinutes())),n=fi(2,String(a.getUTCSeconds())),i=fi(3,String(a.getUTCMilliseconds()));return e+":"+t+":"+n+"."+i+" UTC"}function fi(a,e){return e.length>=a?e:String("0".repeat(a)+e).slice(-a)}});var hi=F($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.trimLastNewline=$e.LogOutputEvent=$e.logger=$e.Logger=$e.LogLevel=void 0;var vm=Fu(),Sm=di(),qt;(function(a){a[a.Verbose=0]="Verbose",a[a.Log=1]="Log",a[a.Warn=2]="Warn",a[a.Error=3]="Error",a[a.Stop=4]="Stop"})(qt=$e.LogLevel||($e.LogLevel={}));var mi=class{constructor(){this._pendingLogQ=[]}log(e,t=qt.Log){e=e+`
2921
- `,this._write(e,t)}verbose(e){this.log(e,qt.Verbose)}warn(e){this.log(e,qt.Warn)}error(e){this.log(e,qt.Error)}dispose(){if(this._currentLogger){let e=this._currentLogger.dispose();return this._currentLogger=null,e}else return Promise.resolve()}_write(e,t=qt.Log){e=e+"",this._pendingLogQ?this._pendingLogQ.push({msg:e,level:t}):this._currentLogger&&this._currentLogger.log(e,t)}setup(e,t,n=!0){let i=typeof t=="string"?t:t&&this._logFilePathFromInit;if(this._currentLogger){let s={consoleMinLogLevel:e,logFilePath:i,prependTimestamp:n};this._currentLogger.setup(s).then(()=>{if(this._pendingLogQ){let u=this._pendingLogQ;this._pendingLogQ=null,u.forEach(f=>this._write(f.msg,f.level))}})}}init(e,t,n){this._pendingLogQ=this._pendingLogQ||[],this._currentLogger=new vm.InternalLogger(e,n),this._logFilePathFromInit=t}};$e.Logger=mi;$e.logger=new mi;var Ta=class extends Sm.OutputEvent{constructor(e,t){let n=t===qt.Error?"stderr":t===qt.Warn?"console":"stdout";super(e,n)}};$e.LogOutputEvent=Ta;function Rm(a){return a.replace(/(\n|\r\n)$/,"")}$e.trimLastNewline=Rm});var Mu=F(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.LoggingDebugSession=void 0;var qu=hi(),xr=qu.logger,Bu=di(),ka=class extends Bu.DebugSession{constructor(e,t,n){super(t,n),this.obsolete_logFilePath=e,this.on("error",i=>{xr.error(i.body)})}start(e,t){super.start(e,t),xr.init(n=>this.sendEvent(n),this.obsolete_logFilePath,this._isServer)}sendEvent(e){if(!(e instanceof qu.LogOutputEvent)){let t=e;e instanceof Bu.OutputEvent&&e.body&&e.body.data&&e.body.data.doNotLogOutput&&(delete e.body.data.doNotLogOutput,t={...e},t.body={...e.body,output:"<output not logged>"}),xr.verbose(`To client: ${JSON.stringify(t)}`)}super.sendEvent(e)}sendRequest(e,t,n,i){xr.verbose(`To client: ${JSON.stringify(e)}(${JSON.stringify(t)}), timeout: ${n}`),super.sendRequest(e,t,n,i)}sendResponse(e){xr.verbose(`To client: ${JSON.stringify(e)}`),super.sendResponse(e)}dispatchRequest(e){xr.verbose(`From client: ${e.command}(${JSON.stringify(e.arguments)})`),super.dispatchRequest(e)}};gi.LoggingDebugSession=ka});var Nu=F(_i=>{"use strict";Object.defineProperty(_i,"__esModule",{value:!0});_i.Handles=void 0;var Ia=class{constructor(e){this.START_HANDLE=1e3,this._handleMap=new Map,this._nextHandle=typeof e=="number"?e:this.START_HANDLE}reset(){this._nextHandle=this.START_HANDLE,this._handleMap=new Map}create(e){var t=this._nextHandle++;return this._handleMap.set(t,e),t}get(e,t){return this._handleMap.get(e)||t}};_i.Handles=Ia});var Wu=F(I=>{"use strict";Object.defineProperty(I,"__esModule",{value:!0});I.Handles=I.Response=I.Event=I.ErrorDestination=I.CompletionItem=I.Module=I.Source=I.Breakpoint=I.Variable=I.Scope=I.StackFrame=I.Thread=I.MemoryEvent=I.InvalidatedEvent=I.ProgressEndEvent=I.ProgressUpdateEvent=I.ProgressStartEvent=I.CapabilitiesEvent=I.LoadedSourceEvent=I.ModuleEvent=I.BreakpointEvent=I.ThreadEvent=I.OutputEvent=I.ContinuedEvent=I.StoppedEvent=I.ExitedEvent=I.TerminatedEvent=I.InitializedEvent=I.logger=I.Logger=I.LoggingDebugSession=I.DebugSession=void 0;var oe=di();Object.defineProperty(I,"DebugSession",{enumerable:!0,get:function(){return oe.DebugSession}});Object.defineProperty(I,"InitializedEvent",{enumerable:!0,get:function(){return oe.InitializedEvent}});Object.defineProperty(I,"TerminatedEvent",{enumerable:!0,get:function(){return oe.TerminatedEvent}});Object.defineProperty(I,"ExitedEvent",{enumerable:!0,get:function(){return oe.ExitedEvent}});Object.defineProperty(I,"StoppedEvent",{enumerable:!0,get:function(){return oe.StoppedEvent}});Object.defineProperty(I,"ContinuedEvent",{enumerable:!0,get:function(){return oe.ContinuedEvent}});Object.defineProperty(I,"OutputEvent",{enumerable:!0,get:function(){return oe.OutputEvent}});Object.defineProperty(I,"ThreadEvent",{enumerable:!0,get:function(){return oe.ThreadEvent}});Object.defineProperty(I,"BreakpointEvent",{enumerable:!0,get:function(){return oe.BreakpointEvent}});Object.defineProperty(I,"ModuleEvent",{enumerable:!0,get:function(){return oe.ModuleEvent}});Object.defineProperty(I,"LoadedSourceEvent",{enumerable:!0,get:function(){return oe.LoadedSourceEvent}});Object.defineProperty(I,"CapabilitiesEvent",{enumerable:!0,get:function(){return oe.CapabilitiesEvent}});Object.defineProperty(I,"ProgressStartEvent",{enumerable:!0,get:function(){return oe.ProgressStartEvent}});Object.defineProperty(I,"ProgressUpdateEvent",{enumerable:!0,get:function(){return oe.ProgressUpdateEvent}});Object.defineProperty(I,"ProgressEndEvent",{enumerable:!0,get:function(){return oe.ProgressEndEvent}});Object.defineProperty(I,"InvalidatedEvent",{enumerable:!0,get:function(){return oe.InvalidatedEvent}});Object.defineProperty(I,"MemoryEvent",{enumerable:!0,get:function(){return oe.MemoryEvent}});Object.defineProperty(I,"Thread",{enumerable:!0,get:function(){return oe.Thread}});Object.defineProperty(I,"StackFrame",{enumerable:!0,get:function(){return oe.StackFrame}});Object.defineProperty(I,"Scope",{enumerable:!0,get:function(){return oe.Scope}});Object.defineProperty(I,"Variable",{enumerable:!0,get:function(){return oe.Variable}});Object.defineProperty(I,"Breakpoint",{enumerable:!0,get:function(){return oe.Breakpoint}});Object.defineProperty(I,"Source",{enumerable:!0,get:function(){return oe.Source}});Object.defineProperty(I,"Module",{enumerable:!0,get:function(){return oe.Module}});Object.defineProperty(I,"CompletionItem",{enumerable:!0,get:function(){return oe.CompletionItem}});Object.defineProperty(I,"ErrorDestination",{enumerable:!0,get:function(){return oe.ErrorDestination}});var Em=Mu();Object.defineProperty(I,"LoggingDebugSession",{enumerable:!0,get:function(){return Em.LoggingDebugSession}});var ju=hi();I.Logger=ju;var Uu=ai();Object.defineProperty(I,"Event",{enumerable:!0,get:function(){return Uu.Event}});Object.defineProperty(I,"Response",{enumerable:!0,get:function(){return Uu.Response}});var Pm=Nu();Object.defineProperty(I,"Handles",{enumerable:!0,get:function(){return Pm.Handles}});var Lm=ju.logger;I.logger=Lm});var en=F((mw,Vu)=>{"use strict";var xm="2.0.0",Am=Number.MAX_SAFE_INTEGER||9007199254740991,Tm=16,km=250,Im=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Vu.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Tm,MAX_SAFE_BUILD_LENGTH:km,MAX_SAFE_INTEGER:Am,RELEASE_TYPES:Im,SEMVER_SPEC_VERSION:xm,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var tn=F((gw,zu)=>{"use strict";var Cm=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...a)=>console.error("SEMVER",...a):()=>{};zu.exports=Cm});var Ar=F((gt,Hu)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Ca,MAX_SAFE_BUILD_LENGTH:Dm,MAX_LENGTH:$m}=en(),Om=tn();gt=Hu.exports={};var Fm=gt.re=[],Bm=gt.safeRe=[],T=gt.src=[],k=gt.t={},qm=0,Da="[a-zA-Z0-9-]",Mm=[["\\s",1],["\\d",$m],[Da,Dm]],Nm=a=>{for(let[e,t]of Mm)a=a.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return a},W=(a,e,t)=>{let n=Nm(e),i=qm++;Om(a,i,e),k[a]=i,T[i]=e,Fm[i]=new RegExp(e,t?"g":void 0),Bm[i]=new RegExp(n,t?"g":void 0)};W("NUMERICIDENTIFIER","0|[1-9]\\d*");W("NUMERICIDENTIFIERLOOSE","\\d+");W("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Da}*`);W("MAINVERSION",`(${T[k.NUMERICIDENTIFIER]})\\.(${T[k.NUMERICIDENTIFIER]})\\.(${T[k.NUMERICIDENTIFIER]})`);W("MAINVERSIONLOOSE",`(${T[k.NUMERICIDENTIFIERLOOSE]})\\.(${T[k.NUMERICIDENTIFIERLOOSE]})\\.(${T[k.NUMERICIDENTIFIERLOOSE]})`);W("PRERELEASEIDENTIFIER",`(?:${T[k.NUMERICIDENTIFIER]}|${T[k.NONNUMERICIDENTIFIER]})`);W("PRERELEASEIDENTIFIERLOOSE",`(?:${T[k.NUMERICIDENTIFIERLOOSE]}|${T[k.NONNUMERICIDENTIFIER]})`);W("PRERELEASE",`(?:-(${T[k.PRERELEASEIDENTIFIER]}(?:\\.${T[k.PRERELEASEIDENTIFIER]})*))`);W("PRERELEASELOOSE",`(?:-?(${T[k.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${T[k.PRERELEASEIDENTIFIERLOOSE]})*))`);W("BUILDIDENTIFIER",`${Da}+`);W("BUILD",`(?:\\+(${T[k.BUILDIDENTIFIER]}(?:\\.${T[k.BUILDIDENTIFIER]})*))`);W("FULLPLAIN",`v?${T[k.MAINVERSION]}${T[k.PRERELEASE]}?${T[k.BUILD]}?`);W("FULL",`^${T[k.FULLPLAIN]}$`);W("LOOSEPLAIN",`[v=\\s]*${T[k.MAINVERSIONLOOSE]}${T[k.PRERELEASELOOSE]}?${T[k.BUILD]}?`);W("LOOSE",`^${T[k.LOOSEPLAIN]}$`);W("GTLT","((?:<|>)?=?)");W("XRANGEIDENTIFIERLOOSE",`${T[k.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);W("XRANGEIDENTIFIER",`${T[k.NUMERICIDENTIFIER]}|x|X|\\*`);W("XRANGEPLAIN",`[v=\\s]*(${T[k.XRANGEIDENTIFIER]})(?:\\.(${T[k.XRANGEIDENTIFIER]})(?:\\.(${T[k.XRANGEIDENTIFIER]})(?:${T[k.PRERELEASE]})?${T[k.BUILD]}?)?)?`);W("XRANGEPLAINLOOSE",`[v=\\s]*(${T[k.XRANGEIDENTIFIERLOOSE]})(?:\\.(${T[k.XRANGEIDENTIFIERLOOSE]})(?:\\.(${T[k.XRANGEIDENTIFIERLOOSE]})(?:${T[k.PRERELEASELOOSE]})?${T[k.BUILD]}?)?)?`);W("XRANGE",`^${T[k.GTLT]}\\s*${T[k.XRANGEPLAIN]}$`);W("XRANGELOOSE",`^${T[k.GTLT]}\\s*${T[k.XRANGEPLAINLOOSE]}$`);W("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Ca}})(?:\\.(\\d{1,${Ca}}))?(?:\\.(\\d{1,${Ca}}))?`);W("COERCE",`${T[k.COERCEPLAIN]}(?:$|[^\\d])`);W("COERCEFULL",T[k.COERCEPLAIN]+`(?:${T[k.PRERELEASE]})?(?:${T[k.BUILD]})?(?:$|[^\\d])`);W("COERCERTL",T[k.COERCE],!0);W("COERCERTLFULL",T[k.COERCEFULL],!0);W("LONETILDE","(?:~>?)");W("TILDETRIM",`(\\s*)${T[k.LONETILDE]}\\s+`,!0);gt.tildeTrimReplace="$1~";W("TILDE",`^${T[k.LONETILDE]}${T[k.XRANGEPLAIN]}$`);W("TILDELOOSE",`^${T[k.LONETILDE]}${T[k.XRANGEPLAINLOOSE]}$`);W("LONECARET","(?:\\^)");W("CARETTRIM",`(\\s*)${T[k.LONECARET]}\\s+`,!0);gt.caretTrimReplace="$1^";W("CARET",`^${T[k.LONECARET]}${T[k.XRANGEPLAIN]}$`);W("CARETLOOSE",`^${T[k.LONECARET]}${T[k.XRANGEPLAINLOOSE]}$`);W("COMPARATORLOOSE",`^${T[k.GTLT]}\\s*(${T[k.LOOSEPLAIN]})$|^$`);W("COMPARATOR",`^${T[k.GTLT]}\\s*(${T[k.FULLPLAIN]})$|^$`);W("COMPARATORTRIM",`(\\s*)${T[k.GTLT]}\\s*(${T[k.LOOSEPLAIN]}|${T[k.XRANGEPLAIN]})`,!0);gt.comparatorTrimReplace="$1$2$3";W("HYPHENRANGE",`^\\s*(${T[k.XRANGEPLAIN]})\\s+-\\s+(${T[k.XRANGEPLAIN]})\\s*$`);W("HYPHENRANGELOOSE",`^\\s*(${T[k.XRANGEPLAINLOOSE]})\\s+-\\s+(${T[k.XRANGEPLAINLOOSE]})\\s*$`);W("STAR","(<|>)?=?\\s*\\*");W("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");W("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var bi=F((_w,Gu)=>{"use strict";var jm=Object.freeze({loose:!0}),Um=Object.freeze({}),Wm=a=>a?typeof a!="object"?jm:a:Um;Gu.exports=Wm});var $a=F((bw,Yu)=>{"use strict";var Ku=/^[0-9]+$/,Xu=(a,e)=>{let t=Ku.test(a),n=Ku.test(e);return t&&n&&(a=+a,e=+e),a===e?0:t&&!n?-1:n&&!t?1:a<e?-1:1},Vm=(a,e)=>Xu(e,a);Yu.exports={compareIdentifiers:Xu,rcompareIdentifiers:Vm}});var ge=F((yw,ec)=>{"use strict";var yi=tn(),{MAX_LENGTH:Qu,MAX_SAFE_INTEGER:wi}=en(),{safeRe:Ju,t:Zu}=Ar(),zm=bi(),{compareIdentifiers:Tr}=$a(),Oa=class a{constructor(e,t){if(t=zm(t),e instanceof a){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Qu)throw new TypeError(`version is longer than ${Qu} characters`);yi("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?Ju[Zu.LOOSE]:Ju[Zu.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>wi||this.major<0)throw new TypeError("Invalid major version");if(this.minor>wi||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>wi||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&s<wi)return s}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(yi("SemVer.compare",this.version,this.options,e),!(e instanceof a)){if(typeof e=="string"&&e===this.version)return 0;e=new a(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof a||(e=new a(e,this.options)),Tr(this.major,e.major)||Tr(this.minor,e.minor)||Tr(this.patch,e.patch)}comparePre(e){if(e instanceof a||(e=new a(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let n=this.prerelease[t],i=e.prerelease[t];if(yi("prerelease compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Tr(n,i)}while(++t)}compareBuild(e){e instanceof a||(e=new a(e,this.options));let t=0;do{let n=this.build[t],i=e.build[t];if(yi("build compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Tr(n,i)}while(++t)}inc(e,t,n){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,n),this.inc("pre",t,n);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(n)?1:0;if(!t&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[i];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(t){let s=[t,i];n===!1&&(s=[t]),Tr(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};ec.exports=Oa});var ir=F((ww,rc)=>{"use strict";var tc=ge(),Hm=(a,e,t=!1)=>{if(a instanceof tc)return a;try{return new tc(a,e)}catch(n){if(!t)return null;throw n}};rc.exports=Hm});var ic=F((vw,nc)=>{"use strict";var Gm=ir(),Km=(a,e)=>{let t=Gm(a,e);return t?t.version:null};nc.exports=Km});var ac=F((Sw,oc)=>{"use strict";var Xm=ir(),Ym=(a,e)=>{let t=Xm(a.trim().replace(/^[=v]+/,""),e);return t?t.version:null};oc.exports=Ym});var uc=F((Rw,lc)=>{"use strict";var sc=ge(),Qm=(a,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new sc(a instanceof sc?a.version:a,t).inc(e,n,i).version}catch{return null}};lc.exports=Qm});var fc=F((Ew,dc)=>{"use strict";var cc=ir(),Jm=(a,e)=>{let t=cc(a,null,!0),n=cc(e,null,!0),i=t.compare(n);if(i===0)return null;let s=i>0,u=s?t:n,f=s?n:t,d=!!u.prerelease.length;if(!!f.prerelease.length&&!d)return!f.patch&&!f.minor?"major":u.patch?"patch":u.minor?"minor":"major";let p=d?"pre":"";return t.major!==n.major?p+"major":t.minor!==n.minor?p+"minor":t.patch!==n.patch?p+"patch":"prerelease"};dc.exports=Jm});var hc=F((Pw,pc)=>{"use strict";var Zm=ge(),eg=(a,e)=>new Zm(a,e).major;pc.exports=eg});var gc=F((Lw,mc)=>{"use strict";var tg=ge(),rg=(a,e)=>new tg(a,e).minor;mc.exports=rg});var bc=F((xw,_c)=>{"use strict";var ng=ge(),ig=(a,e)=>new ng(a,e).patch;_c.exports=ig});var wc=F((Aw,yc)=>{"use strict";var og=ir(),ag=(a,e)=>{let t=og(a,e);return t&&t.prerelease.length?t.prerelease:null};yc.exports=ag});var Ue=F((Tw,Sc)=>{"use strict";var vc=ge(),sg=(a,e,t)=>new vc(a,t).compare(new vc(e,t));Sc.exports=sg});var Ec=F((kw,Rc)=>{"use strict";var lg=Ue(),ug=(a,e,t)=>lg(e,a,t);Rc.exports=ug});var Lc=F((Iw,Pc)=>{"use strict";var cg=Ue(),dg=(a,e)=>cg(a,e,!0);Pc.exports=dg});var vi=F((Cw,Ac)=>{"use strict";var xc=ge(),fg=(a,e,t)=>{let n=new xc(a,t),i=new xc(e,t);return n.compare(i)||n.compareBuild(i)};Ac.exports=fg});var kc=F((Dw,Tc)=>{"use strict";var pg=vi(),hg=(a,e)=>a.sort((t,n)=>pg(t,n,e));Tc.exports=hg});var Cc=F(($w,Ic)=>{"use strict";var mg=vi(),gg=(a,e)=>a.sort((t,n)=>mg(n,t,e));Ic.exports=gg});var rn=F((Ow,Dc)=>{"use strict";var _g=Ue(),bg=(a,e,t)=>_g(a,e,t)>0;Dc.exports=bg});var Si=F((Fw,$c)=>{"use strict";var yg=Ue(),wg=(a,e,t)=>yg(a,e,t)<0;$c.exports=wg});var Fa=F((Bw,Oc)=>{"use strict";var vg=Ue(),Sg=(a,e,t)=>vg(a,e,t)===0;Oc.exports=Sg});var Ba=F((qw,Fc)=>{"use strict";var Rg=Ue(),Eg=(a,e,t)=>Rg(a,e,t)!==0;Fc.exports=Eg});var Ri=F((Mw,Bc)=>{"use strict";var Pg=Ue(),Lg=(a,e,t)=>Pg(a,e,t)>=0;Bc.exports=Lg});var Ei=F((Nw,qc)=>{"use strict";var xg=Ue(),Ag=(a,e,t)=>xg(a,e,t)<=0;qc.exports=Ag});var qa=F((jw,Mc)=>{"use strict";var Tg=Fa(),kg=Ba(),Ig=rn(),Cg=Ri(),Dg=Si(),$g=Ei(),Og=(a,e,t,n)=>{switch(e){case"===":return typeof a=="object"&&(a=a.version),typeof t=="object"&&(t=t.version),a===t;case"!==":return typeof a=="object"&&(a=a.version),typeof t=="object"&&(t=t.version),a!==t;case"":case"=":case"==":return Tg(a,t,n);case"!=":return kg(a,t,n);case">":return Ig(a,t,n);case">=":return Cg(a,t,n);case"<":return Dg(a,t,n);case"<=":return $g(a,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Mc.exports=Og});var jc=F((Uw,Nc)=>{"use strict";var Fg=ge(),Bg=ir(),{safeRe:Pi,t:Li}=Ar(),qg=(a,e)=>{if(a instanceof Fg)return a;if(typeof a=="number"&&(a=String(a)),typeof a!="string")return null;e=e||{};let t=null;if(!e.rtl)t=a.match(e.includePrerelease?Pi[Li.COERCEFULL]:Pi[Li.COERCE]);else{let d=e.includePrerelease?Pi[Li.COERCERTLFULL]:Pi[Li.COERCERTL],c;for(;(c=d.exec(a))&&(!t||t.index+t[0].length!==a.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),d.lastIndex=c.index+c[1].length+c[2].length;d.lastIndex=-1}if(t===null)return null;let n=t[2],i=t[3]||"0",s=t[4]||"0",u=e.includePrerelease&&t[5]?`-${t[5]}`:"",f=e.includePrerelease&&t[6]?`+${t[6]}`:"";return Bg(`${n}.${i}.${s}${u}${f}`,e)};Nc.exports=qg});var Wc=F((Ww,Uc)=>{"use strict";var Ma=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(e,t)}return this}};Uc.exports=Ma});var We=F((Vw,Gc)=>{"use strict";var Mg=/\s+/g,Na=class a{constructor(e,t){if(t=jg(t),e instanceof a)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new a(e.raw,t);if(e instanceof ja)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(Mg," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!zc(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&Kg(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let n=0;n<t.length;n++)n>0&&(this.formatted+=" "),this.formatted+=t[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let n=((this.options.includePrerelease&&Hg)|(this.options.loose&&Gg))+":"+e,i=Vc.get(n);if(i)return i;let s=this.options.loose,u=s?Le[be.HYPHENRANGELOOSE]:Le[be.HYPHENRANGE];e=e.replace(u,i_(this.options.includePrerelease)),ae("hyphen replace",e),e=e.replace(Le[be.COMPARATORTRIM],Wg),ae("comparator trim",e),e=e.replace(Le[be.TILDETRIM],Vg),ae("tilde trim",e),e=e.replace(Le[be.CARETTRIM],zg),ae("caret trim",e);let f=e.split(" ").map(_=>Xg(_,this.options)).join(" ").split(/\s+/).map(_=>n_(_,this.options));s&&(f=f.filter(_=>(ae("loose invalid filter",_,this.options),!!_.match(Le[be.COMPARATORLOOSE])))),ae("range list",f);let d=new Map,c=f.map(_=>new ja(_,this.options));for(let _ of c){if(zc(_))return[_];d.set(_.value,_)}d.size>1&&d.has("")&&d.delete("");let p=[...d.values()];return Vc.set(n,p),p}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Range is required");return this.set.some(n=>Hc(n,t)&&e.set.some(i=>Hc(i,t)&&n.every(s=>i.every(u=>s.intersects(u,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Ug(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(o_(this.set[t],e,this.options))return!0;return!1}};Gc.exports=Na;var Ng=Wc(),Vc=new Ng,jg=bi(),ja=nn(),ae=tn(),Ug=ge(),{safeRe:Le,t:be,comparatorTrimReplace:Wg,tildeTrimReplace:Vg,caretTrimReplace:zg}=Ar(),{FLAG_INCLUDE_PRERELEASE:Hg,FLAG_LOOSE:Gg}=en(),zc=a=>a.value==="<0.0.0-0",Kg=a=>a.value==="",Hc=(a,e)=>{let t=!0,n=a.slice(),i=n.pop();for(;t&&n.length;)t=n.every(s=>i.intersects(s,e)),i=n.pop();return t},Xg=(a,e)=>(ae("comp",a,e),a=Jg(a,e),ae("caret",a),a=Yg(a,e),ae("tildes",a),a=e_(a,e),ae("xrange",a),a=r_(a,e),ae("stars",a),a),ye=a=>!a||a.toLowerCase()==="x"||a==="*",Yg=(a,e)=>a.trim().split(/\s+/).map(t=>Qg(t,e)).join(" "),Qg=(a,e)=>{let t=e.loose?Le[be.TILDELOOSE]:Le[be.TILDE];return a.replace(t,(n,i,s,u,f)=>{ae("tilde",a,n,i,s,u,f);let d;return ye(i)?d="":ye(s)?d=`>=${i}.0.0 <${+i+1}.0.0-0`:ye(u)?d=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:f?(ae("replaceTilde pr",f),d=`>=${i}.${s}.${u}-${f} <${i}.${+s+1}.0-0`):d=`>=${i}.${s}.${u} <${i}.${+s+1}.0-0`,ae("tilde return",d),d})},Jg=(a,e)=>a.trim().split(/\s+/).map(t=>Zg(t,e)).join(" "),Zg=(a,e)=>{ae("caret",a,e);let t=e.loose?Le[be.CARETLOOSE]:Le[be.CARET],n=e.includePrerelease?"-0":"";return a.replace(t,(i,s,u,f,d)=>{ae("caret",a,i,s,u,f,d);let c;return ye(s)?c="":ye(u)?c=`>=${s}.0.0${n} <${+s+1}.0.0-0`:ye(f)?s==="0"?c=`>=${s}.${u}.0${n} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.0${n} <${+s+1}.0.0-0`:d?(ae("replaceCaret pr",d),s==="0"?u==="0"?c=`>=${s}.${u}.${f}-${d} <${s}.${u}.${+f+1}-0`:c=`>=${s}.${u}.${f}-${d} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.${f}-${d} <${+s+1}.0.0-0`):(ae("no pr"),s==="0"?u==="0"?c=`>=${s}.${u}.${f}${n} <${s}.${u}.${+f+1}-0`:c=`>=${s}.${u}.${f}${n} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.${f} <${+s+1}.0.0-0`),ae("caret return",c),c})},e_=(a,e)=>(ae("replaceXRanges",a,e),a.split(/\s+/).map(t=>t_(t,e)).join(" ")),t_=(a,e)=>{a=a.trim();let t=e.loose?Le[be.XRANGELOOSE]:Le[be.XRANGE];return a.replace(t,(n,i,s,u,f,d)=>{ae("xRange",a,n,i,s,u,f,d);let c=ye(s),p=c||ye(u),_=p||ye(f),b=_;return i==="="&&b&&(i=""),d=e.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&b?(p&&(u=0),f=0,i===">"?(i=">=",p?(s=+s+1,u=0,f=0):(u=+u+1,f=0)):i==="<="&&(i="<",p?s=+s+1:u=+u+1),i==="<"&&(d="-0"),n=`${i+s}.${u}.${f}${d}`):p?n=`>=${s}.0.0${d} <${+s+1}.0.0-0`:_&&(n=`>=${s}.${u}.0${d} <${s}.${+u+1}.0-0`),ae("xRange return",n),n})},r_=(a,e)=>(ae("replaceStars",a,e),a.trim().replace(Le[be.STAR],"")),n_=(a,e)=>(ae("replaceGTE0",a,e),a.trim().replace(Le[e.includePrerelease?be.GTE0PRE:be.GTE0],"")),i_=a=>(e,t,n,i,s,u,f,d,c,p,_,b)=>(ye(n)?t="":ye(i)?t=`>=${n}.0.0${a?"-0":""}`:ye(s)?t=`>=${n}.${i}.0${a?"-0":""}`:u?t=`>=${t}`:t=`>=${t}${a?"-0":""}`,ye(c)?d="":ye(p)?d=`<${+c+1}.0.0-0`:ye(_)?d=`<${c}.${+p+1}.0-0`:b?d=`<=${c}.${p}.${_}-${b}`:a?d=`<${c}.${p}.${+_+1}-0`:d=`<=${d}`,`${t} ${d}`.trim()),o_=(a,e,t)=>{for(let n=0;n<a.length;n++)if(!a[n].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let n=0;n<a.length;n++)if(ae(a[n].semver),a[n].semver!==ja.ANY&&a[n].semver.prerelease.length>0){let i=a[n].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var nn=F((zw,Zc)=>{"use strict";var on=Symbol("SemVer ANY"),Va=class a{static get ANY(){return on}constructor(e,t){if(t=Kc(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Wa("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===on?this.value="":this.value=this.operator+this.semver.version,Wa("comp",this)}parse(e){let t=this.options.loose?Xc[Yc.COMPARATORLOOSE]:Xc[Yc.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Qc(n[2],this.options.loose):this.semver=on}toString(){return this.value}test(e){if(Wa("Comparator.test",e,this.options.loose),this.semver===on||e===on)return!0;if(typeof e=="string")try{e=new Qc(e,this.options)}catch{return!1}return Ua(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Jc(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new Jc(this.value,t).test(e.semver):(t=Kc(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Ua(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Ua(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Zc.exports=Va;var Kc=bi(),{safeRe:Xc,t:Yc}=Ar(),Ua=qa(),Wa=tn(),Qc=ge(),Jc=We()});var an=F((Hw,ed)=>{"use strict";var a_=We(),s_=(a,e,t)=>{try{e=new a_(e,t)}catch{return!1}return e.test(a)};ed.exports=s_});var rd=F((Gw,td)=>{"use strict";var l_=We(),u_=(a,e)=>new l_(a,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));td.exports=u_});var id=F((Kw,nd)=>{"use strict";var c_=ge(),d_=We(),f_=(a,e,t)=>{let n=null,i=null,s=null;try{s=new d_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||i.compare(u)===-1)&&(n=u,i=new c_(n,t))}),n};nd.exports=f_});var ad=F((Xw,od)=>{"use strict";var p_=ge(),h_=We(),m_=(a,e,t)=>{let n=null,i=null,s=null;try{s=new h_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||i.compare(u)===1)&&(n=u,i=new p_(n,t))}),n};od.exports=m_});var ud=F((Yw,ld)=>{"use strict";var za=ge(),g_=We(),sd=rn(),__=(a,e)=>{a=new g_(a,e);let t=new za("0.0.0");if(a.test(t)||(t=new za("0.0.0-0"),a.test(t)))return t;t=null;for(let n=0;n<a.set.length;++n){let i=a.set[n],s=null;i.forEach(u=>{let f=new za(u.semver.version);switch(u.operator){case">":f.prerelease.length===0?f.patch++:f.prerelease.push(0),f.raw=f.format();case"":case">=":(!s||sd(f,s))&&(s=f);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),s&&(!t||sd(t,s))&&(t=s)}return t&&a.test(t)?t:null};ld.exports=__});var dd=F((Qw,cd)=>{"use strict";var b_=We(),y_=(a,e)=>{try{return new b_(a,e).range||"*"}catch{return null}};cd.exports=y_});var xi=F((Jw,md)=>{"use strict";var w_=ge(),hd=nn(),{ANY:v_}=hd,S_=We(),R_=an(),fd=rn(),pd=Si(),E_=Ei(),P_=Ri(),L_=(a,e,t,n)=>{a=new w_(a,n),e=new S_(e,n);let i,s,u,f,d;switch(t){case">":i=fd,s=E_,u=pd,f=">",d=">=";break;case"<":i=pd,s=P_,u=fd,f="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(R_(a,e,n))return!1;for(let c=0;c<e.set.length;++c){let p=e.set[c],_=null,b=null;if(p.forEach(g=>{g.semver===v_&&(g=new hd(">=0.0.0")),_=_||g,b=b||g,i(g.semver,_.semver,n)?_=g:u(g.semver,b.semver,n)&&(b=g)}),_.operator===f||_.operator===d||(!b.operator||b.operator===f)&&s(a,b.semver))return!1;if(b.operator===d&&u(a,b.semver))return!1}return!0};md.exports=L_});var _d=F((Zw,gd)=>{"use strict";var x_=xi(),A_=(a,e,t)=>x_(a,e,">",t);gd.exports=A_});var yd=F((ev,bd)=>{"use strict";var T_=xi(),k_=(a,e,t)=>T_(a,e,"<",t);bd.exports=k_});var Sd=F((tv,vd)=>{"use strict";var wd=We(),I_=(a,e,t)=>(a=new wd(a,t),e=new wd(e,t),a.intersects(e,t));vd.exports=I_});var Ed=F((rv,Rd)=>{"use strict";var C_=an(),D_=Ue();Rd.exports=(a,e,t)=>{let n=[],i=null,s=null,u=a.sort((p,_)=>D_(p,_,t));for(let p of u)C_(p,e,t)?(s=p,i||(i=p)):(s&&n.push([i,s]),s=null,i=null);i&&n.push([i,null]);let f=[];for(let[p,_]of n)p===_?f.push(p):!_&&p===u[0]?f.push("*"):_?p===u[0]?f.push(`<=${_}`):f.push(`${p} - ${_}`):f.push(`>=${p}`);let d=f.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return d.length<c.length?d:e}});var kd=F((nv,Td)=>{"use strict";var Pd=We(),Ga=nn(),{ANY:Ha}=Ga,sn=an(),Ka=Ue(),$_=(a,e,t={})=>{if(a===e)return!0;a=new Pd(a,t),e=new Pd(e,t);let n=!1;e:for(let i of a.set){for(let s of e.set){let u=F_(i,s,t);if(n=n||u!==null,u)continue e}if(n)return!1}return!0},O_=[new Ga(">=0.0.0-0")],Ld=[new Ga(">=0.0.0")],F_=(a,e,t)=>{if(a===e)return!0;if(a.length===1&&a[0].semver===Ha){if(e.length===1&&e[0].semver===Ha)return!0;t.includePrerelease?a=O_:a=Ld}if(e.length===1&&e[0].semver===Ha){if(t.includePrerelease)return!0;e=Ld}let n=new Set,i,s;for(let g of a)g.operator===">"||g.operator===">="?i=xd(i,g,t):g.operator==="<"||g.operator==="<="?s=Ad(s,g,t):n.add(g.semver);if(n.size>1)return null;let u;if(i&&s){if(u=Ka(i.semver,s.semver,t),u>0)return null;if(u===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let g of n){if(i&&!sn(g,String(i),t)||s&&!sn(g,String(s),t))return null;for(let y of e)if(!sn(g,String(y),t))return!1;return!0}let f,d,c,p,_=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,b=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1;_&&_.prerelease.length===1&&s.operator==="<"&&_.prerelease[0]===0&&(_=!1);for(let g of e){if(p=p||g.operator===">"||g.operator===">=",c=c||g.operator==="<"||g.operator==="<=",i){if(b&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===b.major&&g.semver.minor===b.minor&&g.semver.patch===b.patch&&(b=!1),g.operator===">"||g.operator===">="){if(f=xd(i,g,t),f===g&&f!==i)return!1}else if(i.operator===">="&&!sn(i.semver,String(g),t))return!1}if(s){if(_&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===_.major&&g.semver.minor===_.minor&&g.semver.patch===_.patch&&(_=!1),g.operator==="<"||g.operator==="<="){if(d=Ad(s,g,t),d===g&&d!==s)return!1}else if(s.operator==="<="&&!sn(s.semver,String(g),t))return!1}if(!g.operator&&(s||i)&&u!==0)return!1}return!(i&&c&&!s&&u!==0||s&&p&&!i&&u!==0||b||_)},xd=(a,e,t)=>{if(!a)return e;let n=Ka(a.semver,e.semver,t);return n>0?a:n<0||e.operator===">"&&a.operator===">="?e:a},Ad=(a,e,t)=>{if(!a)return e;let n=Ka(a.semver,e.semver,t);return n<0?a:n>0||e.operator==="<"&&a.operator==="<="?e:a};Td.exports=$_});var $d=F((iv,Dd)=>{"use strict";var Xa=Ar(),Id=en(),B_=ge(),Cd=$a(),q_=ir(),M_=ic(),N_=ac(),j_=uc(),U_=fc(),W_=hc(),V_=gc(),z_=bc(),H_=wc(),G_=Ue(),K_=Ec(),X_=Lc(),Y_=vi(),Q_=kc(),J_=Cc(),Z_=rn(),eb=Si(),tb=Fa(),rb=Ba(),nb=Ri(),ib=Ei(),ob=qa(),ab=jc(),sb=nn(),lb=We(),ub=an(),cb=rd(),db=id(),fb=ad(),pb=ud(),hb=dd(),mb=xi(),gb=_d(),_b=yd(),bb=Sd(),yb=Ed(),wb=kd();Dd.exports={parse:q_,valid:M_,clean:N_,inc:j_,diff:U_,major:W_,minor:V_,patch:z_,prerelease:H_,compare:G_,rcompare:K_,compareLoose:X_,compareBuild:Y_,sort:Q_,rsort:J_,gt:Z_,lt:eb,eq:tb,neq:rb,gte:nb,lte:ib,cmp:ob,coerce:ab,Comparator:sb,Range:lb,satisfies:ub,toComparators:cb,maxSatisfying:db,minSatisfying:fb,minVersion:pb,validRange:hb,outside:mb,gtr:gb,ltr:_b,intersects:bb,simplifyRange:yb,subset:wb,SemVer:B_,re:Xa.re,src:Xa.src,tokens:Xa.t,SEMVER_SPEC_VERSION:Id.SEMVER_SPEC_VERSION,RELEASE_TYPES:Id.RELEASE_TYPES,compareIdentifiers:Cd.compareIdentifiers,rcompareIdentifiers:Cd.rcompareIdentifiers}});var Ud=F((sv,jd)=>{"use strict";var Nd=require("child_process"),Bd=Nd.spawn,vb=Nd.exec;jd.exports=function(a,e,t){if(typeof e=="function"&&t===void 0&&(t=e,e=void 0),a=parseInt(a),Number.isNaN(a)){if(t)return t(new Error("pid must be a number"));throw new Error("pid must be a number")}var n={},i={};switch(n[a]=[],i[a]=1,process.platform){case"win32":vb("taskkill /pid "+a+" /T /F",t);break;case"darwin":Ya(a,n,i,function(s){return Bd("pgrep",["-P",s])},function(){qd(n,e,t)});break;default:Ya(a,n,i,function(s){return Bd("ps",["-o","pid","--no-headers","--ppid",s])},function(){qd(n,e,t)});break}};function qd(a,e,t){var n={};try{Object.keys(a).forEach(function(i){a[i].forEach(function(s){n[s]||(Md(s,e),n[s]=1)}),n[i]||(Md(i,e),n[i]=1)})}catch(i){if(t)return t(i);throw i}if(t)return t()}function Md(a,e){try{process.kill(parseInt(a,10),e)}catch(t){if(t.code!=="ESRCH")throw t}}function Ya(a,e,t,n,i){var s=n(a),u="";s.stdout.on("data",function(c){var c=c.toString("ascii");u+=c});var f=function(d){if(delete t[a],d!=0){Object.keys(t).length==0&&i();return}u.match(/\d+/g).forEach(function(c){c=parseInt(c,10),e[a].push(c),e[c]=[],t[c]=1,Ya(c,e,t,n,i)})};s.on("close",f)}});var Jd=F((Pv,Qd)=>{"use strict";var{hasOwnProperty:ss}=Object.prototype,ls=(a,e={})=>{typeof e=="string"&&(e={section:e}),e.align=e.align===!0,e.newline=e.newline===!0,e.sort=e.sort===!0,e.whitespace=e.whitespace===!0||e.align===!0,e.platform=e.platform||typeof process<"u"&&process.platform,e.bracketedArray=e.bracketedArray!==!1;let t=e.platform==="win32"?`\r
2996
+ `,this._write(e,t)}verbose(e){this.log(e,qt.Verbose)}warn(e){this.log(e,qt.Warn)}error(e){this.log(e,qt.Error)}dispose(){if(this._currentLogger){let e=this._currentLogger.dispose();return this._currentLogger=null,e}else return Promise.resolve()}_write(e,t=qt.Log){e=e+"",this._pendingLogQ?this._pendingLogQ.push({msg:e,level:t}):this._currentLogger&&this._currentLogger.log(e,t)}setup(e,t,n=!0){let i=typeof t=="string"?t:t&&this._logFilePathFromInit;if(this._currentLogger){let s={consoleMinLogLevel:e,logFilePath:i,prependTimestamp:n};this._currentLogger.setup(s).then(()=>{if(this._pendingLogQ){let u=this._pendingLogQ;this._pendingLogQ=null,u.forEach(f=>this._write(f.msg,f.level))}})}}init(e,t,n){this._pendingLogQ=this._pendingLogQ||[],this._currentLogger=new vm.InternalLogger(e,n),this._logFilePathFromInit=t}};$e.Logger=mi;$e.logger=new mi;var Ta=class extends Sm.OutputEvent{constructor(e,t){let n=t===qt.Error?"stderr":t===qt.Warn?"console":"stdout";super(e,n)}};$e.LogOutputEvent=Ta;function Rm(a){return a.replace(/(\n|\r\n)$/,"")}$e.trimLastNewline=Rm});var Mu=F(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.LoggingDebugSession=void 0;var qu=hi(),xr=qu.logger,Bu=di(),ka=class extends Bu.DebugSession{constructor(e,t,n){super(t,n),this.obsolete_logFilePath=e,this.on("error",i=>{xr.error(i.body)})}start(e,t){super.start(e,t),xr.init(n=>this.sendEvent(n),this.obsolete_logFilePath,this._isServer)}sendEvent(e){if(!(e instanceof qu.LogOutputEvent)){let t=e;e instanceof Bu.OutputEvent&&e.body&&e.body.data&&e.body.data.doNotLogOutput&&(delete e.body.data.doNotLogOutput,t={...e},t.body={...e.body,output:"<output not logged>"}),xr.verbose(`To client: ${JSON.stringify(t)}`)}super.sendEvent(e)}sendRequest(e,t,n,i){xr.verbose(`To client: ${JSON.stringify(e)}(${JSON.stringify(t)}), timeout: ${n}`),super.sendRequest(e,t,n,i)}sendResponse(e){xr.verbose(`To client: ${JSON.stringify(e)}`),super.sendResponse(e)}dispatchRequest(e){xr.verbose(`From client: ${e.command}(${JSON.stringify(e.arguments)})`),super.dispatchRequest(e)}};gi.LoggingDebugSession=ka});var Nu=F(_i=>{"use strict";Object.defineProperty(_i,"__esModule",{value:!0});_i.Handles=void 0;var Ca=class{constructor(e){this.START_HANDLE=1e3,this._handleMap=new Map,this._nextHandle=typeof e=="number"?e:this.START_HANDLE}reset(){this._nextHandle=this.START_HANDLE,this._handleMap=new Map}create(e){var t=this._nextHandle++;return this._handleMap.set(t,e),t}get(e,t){return this._handleMap.get(e)||t}};_i.Handles=Ca});var Wu=F(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.Handles=C.Response=C.Event=C.ErrorDestination=C.CompletionItem=C.Module=C.Source=C.Breakpoint=C.Variable=C.Scope=C.StackFrame=C.Thread=C.MemoryEvent=C.InvalidatedEvent=C.ProgressEndEvent=C.ProgressUpdateEvent=C.ProgressStartEvent=C.CapabilitiesEvent=C.LoadedSourceEvent=C.ModuleEvent=C.BreakpointEvent=C.ThreadEvent=C.OutputEvent=C.ContinuedEvent=C.StoppedEvent=C.ExitedEvent=C.TerminatedEvent=C.InitializedEvent=C.logger=C.Logger=C.LoggingDebugSession=C.DebugSession=void 0;var oe=di();Object.defineProperty(C,"DebugSession",{enumerable:!0,get:function(){return oe.DebugSession}});Object.defineProperty(C,"InitializedEvent",{enumerable:!0,get:function(){return oe.InitializedEvent}});Object.defineProperty(C,"TerminatedEvent",{enumerable:!0,get:function(){return oe.TerminatedEvent}});Object.defineProperty(C,"ExitedEvent",{enumerable:!0,get:function(){return oe.ExitedEvent}});Object.defineProperty(C,"StoppedEvent",{enumerable:!0,get:function(){return oe.StoppedEvent}});Object.defineProperty(C,"ContinuedEvent",{enumerable:!0,get:function(){return oe.ContinuedEvent}});Object.defineProperty(C,"OutputEvent",{enumerable:!0,get:function(){return oe.OutputEvent}});Object.defineProperty(C,"ThreadEvent",{enumerable:!0,get:function(){return oe.ThreadEvent}});Object.defineProperty(C,"BreakpointEvent",{enumerable:!0,get:function(){return oe.BreakpointEvent}});Object.defineProperty(C,"ModuleEvent",{enumerable:!0,get:function(){return oe.ModuleEvent}});Object.defineProperty(C,"LoadedSourceEvent",{enumerable:!0,get:function(){return oe.LoadedSourceEvent}});Object.defineProperty(C,"CapabilitiesEvent",{enumerable:!0,get:function(){return oe.CapabilitiesEvent}});Object.defineProperty(C,"ProgressStartEvent",{enumerable:!0,get:function(){return oe.ProgressStartEvent}});Object.defineProperty(C,"ProgressUpdateEvent",{enumerable:!0,get:function(){return oe.ProgressUpdateEvent}});Object.defineProperty(C,"ProgressEndEvent",{enumerable:!0,get:function(){return oe.ProgressEndEvent}});Object.defineProperty(C,"InvalidatedEvent",{enumerable:!0,get:function(){return oe.InvalidatedEvent}});Object.defineProperty(C,"MemoryEvent",{enumerable:!0,get:function(){return oe.MemoryEvent}});Object.defineProperty(C,"Thread",{enumerable:!0,get:function(){return oe.Thread}});Object.defineProperty(C,"StackFrame",{enumerable:!0,get:function(){return oe.StackFrame}});Object.defineProperty(C,"Scope",{enumerable:!0,get:function(){return oe.Scope}});Object.defineProperty(C,"Variable",{enumerable:!0,get:function(){return oe.Variable}});Object.defineProperty(C,"Breakpoint",{enumerable:!0,get:function(){return oe.Breakpoint}});Object.defineProperty(C,"Source",{enumerable:!0,get:function(){return oe.Source}});Object.defineProperty(C,"Module",{enumerable:!0,get:function(){return oe.Module}});Object.defineProperty(C,"CompletionItem",{enumerable:!0,get:function(){return oe.CompletionItem}});Object.defineProperty(C,"ErrorDestination",{enumerable:!0,get:function(){return oe.ErrorDestination}});var Pm=Mu();Object.defineProperty(C,"LoggingDebugSession",{enumerable:!0,get:function(){return Pm.LoggingDebugSession}});var Uu=hi();C.Logger=Uu;var ju=ai();Object.defineProperty(C,"Event",{enumerable:!0,get:function(){return ju.Event}});Object.defineProperty(C,"Response",{enumerable:!0,get:function(){return ju.Response}});var Em=Nu();Object.defineProperty(C,"Handles",{enumerable:!0,get:function(){return Em.Handles}});var Lm=Uu.logger;C.logger=Lm});var en=F((mw,Vu)=>{"use strict";var xm="2.0.0",Am=Number.MAX_SAFE_INTEGER||9007199254740991,Tm=16,km=250,Cm=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Vu.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Tm,MAX_SAFE_BUILD_LENGTH:km,MAX_SAFE_INTEGER:Am,RELEASE_TYPES:Cm,SEMVER_SPEC_VERSION:xm,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var tn=F((gw,zu)=>{"use strict";var Im=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...a)=>console.error("SEMVER",...a):()=>{};zu.exports=Im});var Ar=F((gt,Hu)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Ia,MAX_SAFE_BUILD_LENGTH:Dm,MAX_LENGTH:$m}=en(),Om=tn();gt=Hu.exports={};var Fm=gt.re=[],Bm=gt.safeRe=[],T=gt.src=[],k=gt.t={},qm=0,Da="[a-zA-Z0-9-]",Mm=[["\\s",1],["\\d",$m],[Da,Dm]],Nm=a=>{for(let[e,t]of Mm)a=a.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return a},W=(a,e,t)=>{let n=Nm(e),i=qm++;Om(a,i,e),k[a]=i,T[i]=e,Fm[i]=new RegExp(e,t?"g":void 0),Bm[i]=new RegExp(n,t?"g":void 0)};W("NUMERICIDENTIFIER","0|[1-9]\\d*");W("NUMERICIDENTIFIERLOOSE","\\d+");W("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Da}*`);W("MAINVERSION",`(${T[k.NUMERICIDENTIFIER]})\\.(${T[k.NUMERICIDENTIFIER]})\\.(${T[k.NUMERICIDENTIFIER]})`);W("MAINVERSIONLOOSE",`(${T[k.NUMERICIDENTIFIERLOOSE]})\\.(${T[k.NUMERICIDENTIFIERLOOSE]})\\.(${T[k.NUMERICIDENTIFIERLOOSE]})`);W("PRERELEASEIDENTIFIER",`(?:${T[k.NUMERICIDENTIFIER]}|${T[k.NONNUMERICIDENTIFIER]})`);W("PRERELEASEIDENTIFIERLOOSE",`(?:${T[k.NUMERICIDENTIFIERLOOSE]}|${T[k.NONNUMERICIDENTIFIER]})`);W("PRERELEASE",`(?:-(${T[k.PRERELEASEIDENTIFIER]}(?:\\.${T[k.PRERELEASEIDENTIFIER]})*))`);W("PRERELEASELOOSE",`(?:-?(${T[k.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${T[k.PRERELEASEIDENTIFIERLOOSE]})*))`);W("BUILDIDENTIFIER",`${Da}+`);W("BUILD",`(?:\\+(${T[k.BUILDIDENTIFIER]}(?:\\.${T[k.BUILDIDENTIFIER]})*))`);W("FULLPLAIN",`v?${T[k.MAINVERSION]}${T[k.PRERELEASE]}?${T[k.BUILD]}?`);W("FULL",`^${T[k.FULLPLAIN]}$`);W("LOOSEPLAIN",`[v=\\s]*${T[k.MAINVERSIONLOOSE]}${T[k.PRERELEASELOOSE]}?${T[k.BUILD]}?`);W("LOOSE",`^${T[k.LOOSEPLAIN]}$`);W("GTLT","((?:<|>)?=?)");W("XRANGEIDENTIFIERLOOSE",`${T[k.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);W("XRANGEIDENTIFIER",`${T[k.NUMERICIDENTIFIER]}|x|X|\\*`);W("XRANGEPLAIN",`[v=\\s]*(${T[k.XRANGEIDENTIFIER]})(?:\\.(${T[k.XRANGEIDENTIFIER]})(?:\\.(${T[k.XRANGEIDENTIFIER]})(?:${T[k.PRERELEASE]})?${T[k.BUILD]}?)?)?`);W("XRANGEPLAINLOOSE",`[v=\\s]*(${T[k.XRANGEIDENTIFIERLOOSE]})(?:\\.(${T[k.XRANGEIDENTIFIERLOOSE]})(?:\\.(${T[k.XRANGEIDENTIFIERLOOSE]})(?:${T[k.PRERELEASELOOSE]})?${T[k.BUILD]}?)?)?`);W("XRANGE",`^${T[k.GTLT]}\\s*${T[k.XRANGEPLAIN]}$`);W("XRANGELOOSE",`^${T[k.GTLT]}\\s*${T[k.XRANGEPLAINLOOSE]}$`);W("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Ia}})(?:\\.(\\d{1,${Ia}}))?(?:\\.(\\d{1,${Ia}}))?`);W("COERCE",`${T[k.COERCEPLAIN]}(?:$|[^\\d])`);W("COERCEFULL",T[k.COERCEPLAIN]+`(?:${T[k.PRERELEASE]})?(?:${T[k.BUILD]})?(?:$|[^\\d])`);W("COERCERTL",T[k.COERCE],!0);W("COERCERTLFULL",T[k.COERCEFULL],!0);W("LONETILDE","(?:~>?)");W("TILDETRIM",`(\\s*)${T[k.LONETILDE]}\\s+`,!0);gt.tildeTrimReplace="$1~";W("TILDE",`^${T[k.LONETILDE]}${T[k.XRANGEPLAIN]}$`);W("TILDELOOSE",`^${T[k.LONETILDE]}${T[k.XRANGEPLAINLOOSE]}$`);W("LONECARET","(?:\\^)");W("CARETTRIM",`(\\s*)${T[k.LONECARET]}\\s+`,!0);gt.caretTrimReplace="$1^";W("CARET",`^${T[k.LONECARET]}${T[k.XRANGEPLAIN]}$`);W("CARETLOOSE",`^${T[k.LONECARET]}${T[k.XRANGEPLAINLOOSE]}$`);W("COMPARATORLOOSE",`^${T[k.GTLT]}\\s*(${T[k.LOOSEPLAIN]})$|^$`);W("COMPARATOR",`^${T[k.GTLT]}\\s*(${T[k.FULLPLAIN]})$|^$`);W("COMPARATORTRIM",`(\\s*)${T[k.GTLT]}\\s*(${T[k.LOOSEPLAIN]}|${T[k.XRANGEPLAIN]})`,!0);gt.comparatorTrimReplace="$1$2$3";W("HYPHENRANGE",`^\\s*(${T[k.XRANGEPLAIN]})\\s+-\\s+(${T[k.XRANGEPLAIN]})\\s*$`);W("HYPHENRANGELOOSE",`^\\s*(${T[k.XRANGEPLAINLOOSE]})\\s+-\\s+(${T[k.XRANGEPLAINLOOSE]})\\s*$`);W("STAR","(<|>)?=?\\s*\\*");W("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");W("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var bi=F((_w,Ku)=>{"use strict";var Um=Object.freeze({loose:!0}),jm=Object.freeze({}),Wm=a=>a?typeof a!="object"?Um:a:jm;Ku.exports=Wm});var $a=F((bw,Xu)=>{"use strict";var Gu=/^[0-9]+$/,Yu=(a,e)=>{let t=Gu.test(a),n=Gu.test(e);return t&&n&&(a=+a,e=+e),a===e?0:t&&!n?-1:n&&!t?1:a<e?-1:1},Vm=(a,e)=>Yu(e,a);Xu.exports={compareIdentifiers:Yu,rcompareIdentifiers:Vm}});var ge=F((yw,ec)=>{"use strict";var yi=tn(),{MAX_LENGTH:Qu,MAX_SAFE_INTEGER:wi}=en(),{safeRe:Ju,t:Zu}=Ar(),zm=bi(),{compareIdentifiers:Tr}=$a(),Oa=class a{constructor(e,t){if(t=zm(t),e instanceof a){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Qu)throw new TypeError(`version is longer than ${Qu} characters`);yi("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?Ju[Zu.LOOSE]:Ju[Zu.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>wi||this.major<0)throw new TypeError("Invalid major version");if(this.minor>wi||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>wi||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&s<wi)return s}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(yi("SemVer.compare",this.version,this.options,e),!(e instanceof a)){if(typeof e=="string"&&e===this.version)return 0;e=new a(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof a||(e=new a(e,this.options)),Tr(this.major,e.major)||Tr(this.minor,e.minor)||Tr(this.patch,e.patch)}comparePre(e){if(e instanceof a||(e=new a(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let n=this.prerelease[t],i=e.prerelease[t];if(yi("prerelease compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Tr(n,i)}while(++t)}compareBuild(e){e instanceof a||(e=new a(e,this.options));let t=0;do{let n=this.build[t],i=e.build[t];if(yi("build compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Tr(n,i)}while(++t)}inc(e,t,n){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,n),this.inc("pre",t,n);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(n)?1:0;if(!t&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[i];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(t){let s=[t,i];n===!1&&(s=[t]),Tr(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};ec.exports=Oa});var ir=F((ww,rc)=>{"use strict";var tc=ge(),Hm=(a,e,t=!1)=>{if(a instanceof tc)return a;try{return new tc(a,e)}catch(n){if(!t)return null;throw n}};rc.exports=Hm});var ic=F((vw,nc)=>{"use strict";var Km=ir(),Gm=(a,e)=>{let t=Km(a,e);return t?t.version:null};nc.exports=Gm});var ac=F((Sw,oc)=>{"use strict";var Ym=ir(),Xm=(a,e)=>{let t=Ym(a.trim().replace(/^[=v]+/,""),e);return t?t.version:null};oc.exports=Xm});var uc=F((Rw,lc)=>{"use strict";var sc=ge(),Qm=(a,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new sc(a instanceof sc?a.version:a,t).inc(e,n,i).version}catch{return null}};lc.exports=Qm});var fc=F((Pw,dc)=>{"use strict";var cc=ir(),Jm=(a,e)=>{let t=cc(a,null,!0),n=cc(e,null,!0),i=t.compare(n);if(i===0)return null;let s=i>0,u=s?t:n,f=s?n:t,d=!!u.prerelease.length;if(!!f.prerelease.length&&!d)return!f.patch&&!f.minor?"major":u.patch?"patch":u.minor?"minor":"major";let p=d?"pre":"";return t.major!==n.major?p+"major":t.minor!==n.minor?p+"minor":t.patch!==n.patch?p+"patch":"prerelease"};dc.exports=Jm});var hc=F((Ew,pc)=>{"use strict";var Zm=ge(),eg=(a,e)=>new Zm(a,e).major;pc.exports=eg});var gc=F((Lw,mc)=>{"use strict";var tg=ge(),rg=(a,e)=>new tg(a,e).minor;mc.exports=rg});var bc=F((xw,_c)=>{"use strict";var ng=ge(),ig=(a,e)=>new ng(a,e).patch;_c.exports=ig});var wc=F((Aw,yc)=>{"use strict";var og=ir(),ag=(a,e)=>{let t=og(a,e);return t&&t.prerelease.length?t.prerelease:null};yc.exports=ag});var je=F((Tw,Sc)=>{"use strict";var vc=ge(),sg=(a,e,t)=>new vc(a,t).compare(new vc(e,t));Sc.exports=sg});var Pc=F((kw,Rc)=>{"use strict";var lg=je(),ug=(a,e,t)=>lg(e,a,t);Rc.exports=ug});var Lc=F((Cw,Ec)=>{"use strict";var cg=je(),dg=(a,e)=>cg(a,e,!0);Ec.exports=dg});var vi=F((Iw,Ac)=>{"use strict";var xc=ge(),fg=(a,e,t)=>{let n=new xc(a,t),i=new xc(e,t);return n.compare(i)||n.compareBuild(i)};Ac.exports=fg});var kc=F((Dw,Tc)=>{"use strict";var pg=vi(),hg=(a,e)=>a.sort((t,n)=>pg(t,n,e));Tc.exports=hg});var Ic=F(($w,Cc)=>{"use strict";var mg=vi(),gg=(a,e)=>a.sort((t,n)=>mg(n,t,e));Cc.exports=gg});var rn=F((Ow,Dc)=>{"use strict";var _g=je(),bg=(a,e,t)=>_g(a,e,t)>0;Dc.exports=bg});var Si=F((Fw,$c)=>{"use strict";var yg=je(),wg=(a,e,t)=>yg(a,e,t)<0;$c.exports=wg});var Fa=F((Bw,Oc)=>{"use strict";var vg=je(),Sg=(a,e,t)=>vg(a,e,t)===0;Oc.exports=Sg});var Ba=F((qw,Fc)=>{"use strict";var Rg=je(),Pg=(a,e,t)=>Rg(a,e,t)!==0;Fc.exports=Pg});var Ri=F((Mw,Bc)=>{"use strict";var Eg=je(),Lg=(a,e,t)=>Eg(a,e,t)>=0;Bc.exports=Lg});var Pi=F((Nw,qc)=>{"use strict";var xg=je(),Ag=(a,e,t)=>xg(a,e,t)<=0;qc.exports=Ag});var qa=F((Uw,Mc)=>{"use strict";var Tg=Fa(),kg=Ba(),Cg=rn(),Ig=Ri(),Dg=Si(),$g=Pi(),Og=(a,e,t,n)=>{switch(e){case"===":return typeof a=="object"&&(a=a.version),typeof t=="object"&&(t=t.version),a===t;case"!==":return typeof a=="object"&&(a=a.version),typeof t=="object"&&(t=t.version),a!==t;case"":case"=":case"==":return Tg(a,t,n);case"!=":return kg(a,t,n);case">":return Cg(a,t,n);case">=":return Ig(a,t,n);case"<":return Dg(a,t,n);case"<=":return $g(a,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Mc.exports=Og});var Uc=F((jw,Nc)=>{"use strict";var Fg=ge(),Bg=ir(),{safeRe:Ei,t:Li}=Ar(),qg=(a,e)=>{if(a instanceof Fg)return a;if(typeof a=="number"&&(a=String(a)),typeof a!="string")return null;e=e||{};let t=null;if(!e.rtl)t=a.match(e.includePrerelease?Ei[Li.COERCEFULL]:Ei[Li.COERCE]);else{let d=e.includePrerelease?Ei[Li.COERCERTLFULL]:Ei[Li.COERCERTL],c;for(;(c=d.exec(a))&&(!t||t.index+t[0].length!==a.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),d.lastIndex=c.index+c[1].length+c[2].length;d.lastIndex=-1}if(t===null)return null;let n=t[2],i=t[3]||"0",s=t[4]||"0",u=e.includePrerelease&&t[5]?`-${t[5]}`:"",f=e.includePrerelease&&t[6]?`+${t[6]}`:"";return Bg(`${n}.${i}.${s}${u}${f}`,e)};Nc.exports=qg});var Wc=F((Ww,jc)=>{"use strict";var Ma=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(e,t)}return this}};jc.exports=Ma});var We=F((Vw,Kc)=>{"use strict";var Mg=/\s+/g,Na=class a{constructor(e,t){if(t=Ug(t),e instanceof a)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new a(e.raw,t);if(e instanceof Ua)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(Mg," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!zc(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&Gg(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let n=0;n<t.length;n++)n>0&&(this.formatted+=" "),this.formatted+=t[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let n=((this.options.includePrerelease&&Hg)|(this.options.loose&&Kg))+":"+e,i=Vc.get(n);if(i)return i;let s=this.options.loose,u=s?Le[be.HYPHENRANGELOOSE]:Le[be.HYPHENRANGE];e=e.replace(u,i_(this.options.includePrerelease)),ae("hyphen replace",e),e=e.replace(Le[be.COMPARATORTRIM],Wg),ae("comparator trim",e),e=e.replace(Le[be.TILDETRIM],Vg),ae("tilde trim",e),e=e.replace(Le[be.CARETTRIM],zg),ae("caret trim",e);let f=e.split(" ").map(_=>Yg(_,this.options)).join(" ").split(/\s+/).map(_=>n_(_,this.options));s&&(f=f.filter(_=>(ae("loose invalid filter",_,this.options),!!_.match(Le[be.COMPARATORLOOSE])))),ae("range list",f);let d=new Map,c=f.map(_=>new Ua(_,this.options));for(let _ of c){if(zc(_))return[_];d.set(_.value,_)}d.size>1&&d.has("")&&d.delete("");let p=[...d.values()];return Vc.set(n,p),p}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Range is required");return this.set.some(n=>Hc(n,t)&&e.set.some(i=>Hc(i,t)&&n.every(s=>i.every(u=>s.intersects(u,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new jg(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(o_(this.set[t],e,this.options))return!0;return!1}};Kc.exports=Na;var Ng=Wc(),Vc=new Ng,Ug=bi(),Ua=nn(),ae=tn(),jg=ge(),{safeRe:Le,t:be,comparatorTrimReplace:Wg,tildeTrimReplace:Vg,caretTrimReplace:zg}=Ar(),{FLAG_INCLUDE_PRERELEASE:Hg,FLAG_LOOSE:Kg}=en(),zc=a=>a.value==="<0.0.0-0",Gg=a=>a.value==="",Hc=(a,e)=>{let t=!0,n=a.slice(),i=n.pop();for(;t&&n.length;)t=n.every(s=>i.intersects(s,e)),i=n.pop();return t},Yg=(a,e)=>(ae("comp",a,e),a=Jg(a,e),ae("caret",a),a=Xg(a,e),ae("tildes",a),a=e_(a,e),ae("xrange",a),a=r_(a,e),ae("stars",a),a),ye=a=>!a||a.toLowerCase()==="x"||a==="*",Xg=(a,e)=>a.trim().split(/\s+/).map(t=>Qg(t,e)).join(" "),Qg=(a,e)=>{let t=e.loose?Le[be.TILDELOOSE]:Le[be.TILDE];return a.replace(t,(n,i,s,u,f)=>{ae("tilde",a,n,i,s,u,f);let d;return ye(i)?d="":ye(s)?d=`>=${i}.0.0 <${+i+1}.0.0-0`:ye(u)?d=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:f?(ae("replaceTilde pr",f),d=`>=${i}.${s}.${u}-${f} <${i}.${+s+1}.0-0`):d=`>=${i}.${s}.${u} <${i}.${+s+1}.0-0`,ae("tilde return",d),d})},Jg=(a,e)=>a.trim().split(/\s+/).map(t=>Zg(t,e)).join(" "),Zg=(a,e)=>{ae("caret",a,e);let t=e.loose?Le[be.CARETLOOSE]:Le[be.CARET],n=e.includePrerelease?"-0":"";return a.replace(t,(i,s,u,f,d)=>{ae("caret",a,i,s,u,f,d);let c;return ye(s)?c="":ye(u)?c=`>=${s}.0.0${n} <${+s+1}.0.0-0`:ye(f)?s==="0"?c=`>=${s}.${u}.0${n} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.0${n} <${+s+1}.0.0-0`:d?(ae("replaceCaret pr",d),s==="0"?u==="0"?c=`>=${s}.${u}.${f}-${d} <${s}.${u}.${+f+1}-0`:c=`>=${s}.${u}.${f}-${d} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.${f}-${d} <${+s+1}.0.0-0`):(ae("no pr"),s==="0"?u==="0"?c=`>=${s}.${u}.${f}${n} <${s}.${u}.${+f+1}-0`:c=`>=${s}.${u}.${f}${n} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.${f} <${+s+1}.0.0-0`),ae("caret return",c),c})},e_=(a,e)=>(ae("replaceXRanges",a,e),a.split(/\s+/).map(t=>t_(t,e)).join(" ")),t_=(a,e)=>{a=a.trim();let t=e.loose?Le[be.XRANGELOOSE]:Le[be.XRANGE];return a.replace(t,(n,i,s,u,f,d)=>{ae("xRange",a,n,i,s,u,f,d);let c=ye(s),p=c||ye(u),_=p||ye(f),b=_;return i==="="&&b&&(i=""),d=e.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&b?(p&&(u=0),f=0,i===">"?(i=">=",p?(s=+s+1,u=0,f=0):(u=+u+1,f=0)):i==="<="&&(i="<",p?s=+s+1:u=+u+1),i==="<"&&(d="-0"),n=`${i+s}.${u}.${f}${d}`):p?n=`>=${s}.0.0${d} <${+s+1}.0.0-0`:_&&(n=`>=${s}.${u}.0${d} <${s}.${+u+1}.0-0`),ae("xRange return",n),n})},r_=(a,e)=>(ae("replaceStars",a,e),a.trim().replace(Le[be.STAR],"")),n_=(a,e)=>(ae("replaceGTE0",a,e),a.trim().replace(Le[e.includePrerelease?be.GTE0PRE:be.GTE0],"")),i_=a=>(e,t,n,i,s,u,f,d,c,p,_,b)=>(ye(n)?t="":ye(i)?t=`>=${n}.0.0${a?"-0":""}`:ye(s)?t=`>=${n}.${i}.0${a?"-0":""}`:u?t=`>=${t}`:t=`>=${t}${a?"-0":""}`,ye(c)?d="":ye(p)?d=`<${+c+1}.0.0-0`:ye(_)?d=`<${c}.${+p+1}.0-0`:b?d=`<=${c}.${p}.${_}-${b}`:a?d=`<${c}.${p}.${+_+1}-0`:d=`<=${d}`,`${t} ${d}`.trim()),o_=(a,e,t)=>{for(let n=0;n<a.length;n++)if(!a[n].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let n=0;n<a.length;n++)if(ae(a[n].semver),a[n].semver!==Ua.ANY&&a[n].semver.prerelease.length>0){let i=a[n].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var nn=F((zw,Zc)=>{"use strict";var on=Symbol("SemVer ANY"),Va=class a{static get ANY(){return on}constructor(e,t){if(t=Gc(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Wa("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===on?this.value="":this.value=this.operator+this.semver.version,Wa("comp",this)}parse(e){let t=this.options.loose?Yc[Xc.COMPARATORLOOSE]:Yc[Xc.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Qc(n[2],this.options.loose):this.semver=on}toString(){return this.value}test(e){if(Wa("Comparator.test",e,this.options.loose),this.semver===on||e===on)return!0;if(typeof e=="string")try{e=new Qc(e,this.options)}catch{return!1}return ja(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Jc(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new Jc(this.value,t).test(e.semver):(t=Gc(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||ja(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||ja(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Zc.exports=Va;var Gc=bi(),{safeRe:Yc,t:Xc}=Ar(),ja=qa(),Wa=tn(),Qc=ge(),Jc=We()});var an=F((Hw,ed)=>{"use strict";var a_=We(),s_=(a,e,t)=>{try{e=new a_(e,t)}catch{return!1}return e.test(a)};ed.exports=s_});var rd=F((Kw,td)=>{"use strict";var l_=We(),u_=(a,e)=>new l_(a,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));td.exports=u_});var id=F((Gw,nd)=>{"use strict";var c_=ge(),d_=We(),f_=(a,e,t)=>{let n=null,i=null,s=null;try{s=new d_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||i.compare(u)===-1)&&(n=u,i=new c_(n,t))}),n};nd.exports=f_});var ad=F((Yw,od)=>{"use strict";var p_=ge(),h_=We(),m_=(a,e,t)=>{let n=null,i=null,s=null;try{s=new h_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||i.compare(u)===1)&&(n=u,i=new p_(n,t))}),n};od.exports=m_});var ud=F((Xw,ld)=>{"use strict";var za=ge(),g_=We(),sd=rn(),__=(a,e)=>{a=new g_(a,e);let t=new za("0.0.0");if(a.test(t)||(t=new za("0.0.0-0"),a.test(t)))return t;t=null;for(let n=0;n<a.set.length;++n){let i=a.set[n],s=null;i.forEach(u=>{let f=new za(u.semver.version);switch(u.operator){case">":f.prerelease.length===0?f.patch++:f.prerelease.push(0),f.raw=f.format();case"":case">=":(!s||sd(f,s))&&(s=f);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),s&&(!t||sd(t,s))&&(t=s)}return t&&a.test(t)?t:null};ld.exports=__});var dd=F((Qw,cd)=>{"use strict";var b_=We(),y_=(a,e)=>{try{return new b_(a,e).range||"*"}catch{return null}};cd.exports=y_});var xi=F((Jw,md)=>{"use strict";var w_=ge(),hd=nn(),{ANY:v_}=hd,S_=We(),R_=an(),fd=rn(),pd=Si(),P_=Pi(),E_=Ri(),L_=(a,e,t,n)=>{a=new w_(a,n),e=new S_(e,n);let i,s,u,f,d;switch(t){case">":i=fd,s=P_,u=pd,f=">",d=">=";break;case"<":i=pd,s=E_,u=fd,f="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(R_(a,e,n))return!1;for(let c=0;c<e.set.length;++c){let p=e.set[c],_=null,b=null;if(p.forEach(g=>{g.semver===v_&&(g=new hd(">=0.0.0")),_=_||g,b=b||g,i(g.semver,_.semver,n)?_=g:u(g.semver,b.semver,n)&&(b=g)}),_.operator===f||_.operator===d||(!b.operator||b.operator===f)&&s(a,b.semver))return!1;if(b.operator===d&&u(a,b.semver))return!1}return!0};md.exports=L_});var _d=F((Zw,gd)=>{"use strict";var x_=xi(),A_=(a,e,t)=>x_(a,e,">",t);gd.exports=A_});var yd=F((ev,bd)=>{"use strict";var T_=xi(),k_=(a,e,t)=>T_(a,e,"<",t);bd.exports=k_});var Sd=F((tv,vd)=>{"use strict";var wd=We(),C_=(a,e,t)=>(a=new wd(a,t),e=new wd(e,t),a.intersects(e,t));vd.exports=C_});var Pd=F((rv,Rd)=>{"use strict";var I_=an(),D_=je();Rd.exports=(a,e,t)=>{let n=[],i=null,s=null,u=a.sort((p,_)=>D_(p,_,t));for(let p of u)I_(p,e,t)?(s=p,i||(i=p)):(s&&n.push([i,s]),s=null,i=null);i&&n.push([i,null]);let f=[];for(let[p,_]of n)p===_?f.push(p):!_&&p===u[0]?f.push("*"):_?p===u[0]?f.push(`<=${_}`):f.push(`${p} - ${_}`):f.push(`>=${p}`);let d=f.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return d.length<c.length?d:e}});var kd=F((nv,Td)=>{"use strict";var Ed=We(),Ka=nn(),{ANY:Ha}=Ka,sn=an(),Ga=je(),$_=(a,e,t={})=>{if(a===e)return!0;a=new Ed(a,t),e=new Ed(e,t);let n=!1;e:for(let i of a.set){for(let s of e.set){let u=F_(i,s,t);if(n=n||u!==null,u)continue e}if(n)return!1}return!0},O_=[new Ka(">=0.0.0-0")],Ld=[new Ka(">=0.0.0")],F_=(a,e,t)=>{if(a===e)return!0;if(a.length===1&&a[0].semver===Ha){if(e.length===1&&e[0].semver===Ha)return!0;t.includePrerelease?a=O_:a=Ld}if(e.length===1&&e[0].semver===Ha){if(t.includePrerelease)return!0;e=Ld}let n=new Set,i,s;for(let g of a)g.operator===">"||g.operator===">="?i=xd(i,g,t):g.operator==="<"||g.operator==="<="?s=Ad(s,g,t):n.add(g.semver);if(n.size>1)return null;let u;if(i&&s){if(u=Ga(i.semver,s.semver,t),u>0)return null;if(u===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let g of n){if(i&&!sn(g,String(i),t)||s&&!sn(g,String(s),t))return null;for(let y of e)if(!sn(g,String(y),t))return!1;return!0}let f,d,c,p,_=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,b=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1;_&&_.prerelease.length===1&&s.operator==="<"&&_.prerelease[0]===0&&(_=!1);for(let g of e){if(p=p||g.operator===">"||g.operator===">=",c=c||g.operator==="<"||g.operator==="<=",i){if(b&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===b.major&&g.semver.minor===b.minor&&g.semver.patch===b.patch&&(b=!1),g.operator===">"||g.operator===">="){if(f=xd(i,g,t),f===g&&f!==i)return!1}else if(i.operator===">="&&!sn(i.semver,String(g),t))return!1}if(s){if(_&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===_.major&&g.semver.minor===_.minor&&g.semver.patch===_.patch&&(_=!1),g.operator==="<"||g.operator==="<="){if(d=Ad(s,g,t),d===g&&d!==s)return!1}else if(s.operator==="<="&&!sn(s.semver,String(g),t))return!1}if(!g.operator&&(s||i)&&u!==0)return!1}return!(i&&c&&!s&&u!==0||s&&p&&!i&&u!==0||b||_)},xd=(a,e,t)=>{if(!a)return e;let n=Ga(a.semver,e.semver,t);return n>0?a:n<0||e.operator===">"&&a.operator===">="?e:a},Ad=(a,e,t)=>{if(!a)return e;let n=Ga(a.semver,e.semver,t);return n<0?a:n>0||e.operator==="<"&&a.operator==="<="?e:a};Td.exports=$_});var $d=F((iv,Dd)=>{"use strict";var Ya=Ar(),Cd=en(),B_=ge(),Id=$a(),q_=ir(),M_=ic(),N_=ac(),U_=uc(),j_=fc(),W_=hc(),V_=gc(),z_=bc(),H_=wc(),K_=je(),G_=Pc(),Y_=Lc(),X_=vi(),Q_=kc(),J_=Ic(),Z_=rn(),eb=Si(),tb=Fa(),rb=Ba(),nb=Ri(),ib=Pi(),ob=qa(),ab=Uc(),sb=nn(),lb=We(),ub=an(),cb=rd(),db=id(),fb=ad(),pb=ud(),hb=dd(),mb=xi(),gb=_d(),_b=yd(),bb=Sd(),yb=Pd(),wb=kd();Dd.exports={parse:q_,valid:M_,clean:N_,inc:U_,diff:j_,major:W_,minor:V_,patch:z_,prerelease:H_,compare:K_,rcompare:G_,compareLoose:Y_,compareBuild:X_,sort:Q_,rsort:J_,gt:Z_,lt:eb,eq:tb,neq:rb,gte:nb,lte:ib,cmp:ob,coerce:ab,Comparator:sb,Range:lb,satisfies:ub,toComparators:cb,maxSatisfying:db,minSatisfying:fb,minVersion:pb,validRange:hb,outside:mb,gtr:gb,ltr:_b,intersects:bb,simplifyRange:yb,subset:wb,SemVer:B_,re:Ya.re,src:Ya.src,tokens:Ya.t,SEMVER_SPEC_VERSION:Cd.SEMVER_SPEC_VERSION,RELEASE_TYPES:Cd.RELEASE_TYPES,compareIdentifiers:Id.compareIdentifiers,rcompareIdentifiers:Id.rcompareIdentifiers}});var jd=F((sv,Ud)=>{"use strict";var Nd=require("child_process"),Bd=Nd.spawn,vb=Nd.exec;Ud.exports=function(a,e,t){if(typeof e=="function"&&t===void 0&&(t=e,e=void 0),a=parseInt(a),Number.isNaN(a)){if(t)return t(new Error("pid must be a number"));throw new Error("pid must be a number")}var n={},i={};switch(n[a]=[],i[a]=1,process.platform){case"win32":vb("taskkill /pid "+a+" /T /F",t);break;case"darwin":Xa(a,n,i,function(s){return Bd("pgrep",["-P",s])},function(){qd(n,e,t)});break;default:Xa(a,n,i,function(s){return Bd("ps",["-o","pid","--no-headers","--ppid",s])},function(){qd(n,e,t)});break}};function qd(a,e,t){var n={};try{Object.keys(a).forEach(function(i){a[i].forEach(function(s){n[s]||(Md(s,e),n[s]=1)}),n[i]||(Md(i,e),n[i]=1)})}catch(i){if(t)return t(i);throw i}if(t)return t()}function Md(a,e){try{process.kill(parseInt(a,10),e)}catch(t){if(t.code!=="ESRCH")throw t}}function Xa(a,e,t,n,i){var s=n(a),u="";s.stdout.on("data",function(c){var c=c.toString("ascii");u+=c});var f=function(d){if(delete t[a],d!=0){Object.keys(t).length==0&&i();return}u.match(/\d+/g).forEach(function(c){c=parseInt(c,10),e[a].push(c),e[c]=[],t[c]=1,Xa(c,e,t,n,i)})};s.on("close",f)}});var Jd=F((Ev,Qd)=>{"use strict";var{hasOwnProperty:ss}=Object.prototype,ls=(a,e={})=>{typeof e=="string"&&(e={section:e}),e.align=e.align===!0,e.newline=e.newline===!0,e.sort=e.sort===!0,e.whitespace=e.whitespace===!0||e.align===!0,e.platform=e.platform||typeof process<"u"&&process.platform,e.bracketedArray=e.bracketedArray!==!1;let t=e.platform==="win32"?`\r
2922
2997
  `:`
2923
- `,n=e.whitespace?" = ":"=",i=[],s=e.sort?Object.keys(a).sort():Object.keys(a),u=0;e.align&&(u=yt(s.filter(c=>a[c]===null||Array.isArray(a[c])||typeof a[c]!="object").map(c=>Array.isArray(a[c])?`${c}[]`:c).concat([""]).reduce((c,p)=>yt(c).length>=yt(p).length?c:p)).length);let f="",d=e.bracketedArray?"[]":"";for(let c of s){let p=a[c];if(p&&Array.isArray(p))for(let _ of p)f+=yt(`${c}${d}`).padEnd(u," ")+n+yt(_)+t;else p&&typeof p=="object"?i.push(c):f+=yt(c).padEnd(u," ")+n+yt(p)+t}e.section&&f.length&&(f="["+yt(e.section)+"]"+(e.newline?t+t:t)+f);for(let c of i){let p=Xd(c,".").join("\\."),_=(e.section?e.section+".":"")+p,b=ls(a[c],{...e,section:_});f.length&&b.length&&(f+=t),f+=b}return f};function Xd(a,e){var t=0,n=0,i=0,s=[];do if(i=a.indexOf(e,t),i!==-1){if(t=i+e.length,i>0&&a[i-1]==="\\")continue;s.push(a.slice(n,i)),n=i+e.length}while(i!==-1);return s.push(a.slice(n)),s}var Kd=(a,e={})=>{e.bracketedArray=e.bracketedArray!==!1;let t=Object.create(null),n=t,i=null,s=/^\[([^\]]*)\]\s*$|^([^=]+)(=(.*))?$/i,u=a.split(/[\r\n]+/g),f={};for(let c of u){if(!c||c.match(/^\s*[;#]/)||c.match(/^\s*$/))continue;let p=c.match(s);if(!p)continue;if(p[1]!==void 0){if(i=Ii(p[1]),i==="__proto__"){n=Object.create(null);continue}n=t[i]=t[i]||Object.create(null);continue}let _=Ii(p[2]),b;e.bracketedArray?b=_.length>2&&_.slice(-2)==="[]":(f[_]=(f?.[_]||0)+1,b=f[_]>1);let g=b&&_.endsWith("[]")?_.slice(0,-2):_;if(g==="__proto__")continue;let y=p[3]?Ii(p[4]):!0,S=y==="true"||y==="false"||y==="null"?JSON.parse(y):y;b&&(ss.call(n,g)?Array.isArray(n[g])||(n[g]=[n[g]]):n[g]=[]),Array.isArray(n[g])?n[g].push(S):n[g]=S}let d=[];for(let c of Object.keys(t)){if(!ss.call(t,c)||typeof t[c]!="object"||Array.isArray(t[c]))continue;let p=Xd(c,".");n=t;let _=p.pop(),b=_.replace(/\\\./g,".");for(let g of p)g!=="__proto__"&&((!ss.call(n,g)||typeof n[g]!="object")&&(n[g]=Object.create(null)),n=n[g]);n===t&&b===_||(n[b]=t[c],d.push(c))}for(let c of d)delete t[c];return t},Yd=a=>a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"),yt=a=>typeof a!="string"||a.match(/[=\r\n]/)||a.match(/^\[/)||a.length>1&&Yd(a)||a!==a.trim()?JSON.stringify(a):a.split(";").join("\\;").split("#").join("\\#"),Ii=a=>{if(a=(a||"").trim(),Yd(a)){a.charAt(0)==="'"&&(a=a.slice(1,-1));try{a=JSON.parse(a)}catch{}}else{let e=!1,t="";for(let n=0,i=a.length;n<i;n++){let s=a.charAt(n);if(e)"\\;#".indexOf(s)!==-1?t+=s:t+="\\"+s,e=!1;else{if(";#".indexOf(s)!==-1)break;s==="\\"?e=!0:t+=s}}return e&&(t+="\\"),t.trim()}return a};Qd.exports={parse:Kd,decode:Kd,stringify:ls,encode:ls,safe:yt,unsafe:Ii}});var Eb={};ne(Eb,{ActiveFactorioVersion:()=>us,ApiDocGenerator:()=>Zo,BufferSplitter:()=>kr,BufferStream:()=>ar,EncodingUtil:()=>go,FactorioModDebugSession:()=>rs,LuaControlBehaviorType:()=>as,LuaFlowStatisticsType:()=>cn,LuaItemStackType:()=>bt,LuaLSAddon:()=>qo,LuaObjectType:()=>os,MapVersion:()=>Dt,ModManager:()=>Rr,ModSettings:()=>Yr,PropertyTree:()=>Er,PropertyTreeType:()=>Yo,ProtoDocGenerator:()=>ea,SavedLuaTypeTag:()=>is,ScriptDat:()=>ns,getModInfo:()=>Au,substitutePathVariables:()=>Ci});module.exports=Kp(Eb);var go={};ne(go,{bufferChunks:()=>ho,encodeBreakpoints:()=>mo,encodeVarInt:()=>Xt,luaBlockQuote:()=>It,objectToLua:()=>Ur});function It(a){let e=a.toString().match(/\]=*$/),t="=".repeat((a.toString().match(/\]=*\]/g)||[]).map(n=>n.length-1).reduce((n,i)=>Math.max(n,i),e?e[0].length:0));return Buffer.concat([Buffer.from(`[${t}[`),a,Buffer.from(`]${t}]`)])}function ho(a,e){let t=[],n=a.length,i=0;for(;i<n;)t.push(a.slice(i,i+=e));return t}function Ur(a){switch(typeof a){case"object":let e=[Buffer.from("{")];for(let t in a)Object.prototype.hasOwnProperty.call(a,t)&&(e.push(Buffer.from("[")),e.push(Ur(t)),e.push(Buffer.from("]=")),e.push(Ur(a[t])),e.push(Buffer.from(",")));return e.push(Buffer.from("}")),Buffer.concat(e);case"string":return Buffer.from(`"${a}"`);case"boolean":case"number":return Buffer.from(`${a}`)}}function Xt(a){if(a>4294967280)throw new Error("Values > 0xFFFFFFF0 are reserved");if(a<0)throw new Error("Value must be positive");a===10?a=4294967295:a===26?a=4294967294:a===13&&(a=4294967293);let e,t,n,i;if(a<128)return Buffer.from([a]);a<2048?(i=2,e=192,t=31,n=6):a<65536?(i=3,e=224,t=15,n=12):a<2097152?(i=4,e=240,t=7,n=18):a<67108864?(i=5,e=248,t=3,n=24):(i=6,e=252,t=3,n=30);let s=Buffer.alloc(i);s[0]=e|a>>n&t;for(let u=n-6,f=1;u>=0;u-=6,f++)s[f]=128|a>>u&63;return s}function Vn(a){let e=Buffer.from(a,"utf8"),t=Xt(e.length);return Buffer.concat([t,e])}function Wn(a){let e=Xt(a.line),t=0,n=new Array;return a.condition&&(t|=1,n.push(Vn(a.condition.replace(/[\r\n]+/g," ")))),a.hitCondition&&(t|=2,n.push(Vn(a.hitCondition.replace(/[\r\n]+/g," ")))),a.logMessage&&(t|=4,n.push(Vn(a.logMessage.replace(/[\r\n]+/g," ")))),Buffer.concat([e,Buffer.from([t]),Buffer.concat(n)])}function mo(a,e){let t=Vn(a),n=e.filter(f=>!f.condition&&!f.hitCondition&&!f.logMessage).map(f=>f.line),i;if(n.length===0)i=Buffer.from([255]);else if(n.length===10){let f=Buffer.from([254]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(d)))])}else if(n.length===26){let f=Buffer.from([253]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(d)))])}else if(n.length===13){let f=Buffer.from([252]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(d)))])}else{let f=Buffer.from([n.length]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(d)))])}let s=e.filter(f=>f.condition||f.hitCondition||f.logMessage),u;if(s.length===0)u=Buffer.from([255]);else if(s.length===10){let f=Buffer.from([254]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Wn(d)))])}else if(s.length===26){let f=Buffer.from([253]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Wn(d)))])}else if(s.length===13){let f=Buffer.from([252]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Wn(d)))])}else{let f=Buffer.from([s.length]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Wn(d)))])}return Buffer.concat([t,i,u])}var qo={};ne(qo,{getConfig:()=>Wh,getLuaFiles:()=>Uh});var Yt="1.1.46";var zn;async function Uh(){if(!zn){zn=[];let a=await Promise.resolve().then(()=>(zl(),Vl)),e=a.default,t=a.filenames;for(let n=0;n<e.length;n++)zn.push({name:t[n].replace("../luals-addon/",""),content:e[n].default})}return zn}async function Wh(a){return{name:"factorio/config.json",content:JSON.stringify(Object.assign(await Promise.resolve().then(()=>se(Hl())),{bundleVersion:Yt,factorioVersion:a}))}}var Pe=se(require("fs/promises")),tt=se(require("path"));var Eu=se(require("node:http"),1),Pu=se(require("node:https"),1),tr=se(require("node:zlib"),1),Ie=se(require("node:stream"),1),Xr=require("node:buffer");function Vh(a){if(!/^data:/i.test(a))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');a=a.replace(/\r?\n/g,"");let e=a.indexOf(",");if(e===-1||e<=4)throw new TypeError("malformed data: URI");let t=a.substring(5,e).split(";"),n="",i=!1,s=t[0]||"text/plain",u=s;for(let p=1;p<t.length;p++)t[p]==="base64"?i=!0:t[p]&&(u+=`;${t[p]}`,t[p].indexOf("charset=")===0&&(n=t[p].substring(8)));!t[0]&&!n.length&&(u+=";charset=US-ASCII",n="US-ASCII");let f=i?"base64":"ascii",d=unescape(a.substring(e+1)),c=Buffer.from(d,f);return c.type=s,c.typeFull=u,c.charset=n,c}var Gl=Vh;var Me=se(require("node:stream"),1),pt=require("node:util"),Te=require("node:buffer");Wr();Gn();var ft=class extends Error{constructor(e,t){super(e),Error.captureStackTrace(this,this.constructor),this.type=t}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}};var Re=class extends ft{constructor(e,t,n){super(e,t),n&&(this.code=this.errno=n.code,this.erroredSysCall=n.syscall)}};var Kn=Symbol.toStringTag,Wo=a=>typeof a=="object"&&typeof a.append=="function"&&typeof a.delete=="function"&&typeof a.get=="function"&&typeof a.getAll=="function"&&typeof a.has=="function"&&typeof a.set=="function"&&typeof a.sort=="function"&&a[Kn]==="URLSearchParams",zr=a=>a&&typeof a=="object"&&typeof a.arrayBuffer=="function"&&typeof a.type=="string"&&typeof a.stream=="function"&&typeof a.constructor=="function"&&/^(Blob|File)$/.test(a[Kn]),ru=a=>typeof a=="object"&&(a[Kn]==="AbortSignal"||a[Kn]==="EventTarget"),nu=(a,e)=>{let t=new URL(e).hostname,n=new URL(a).hostname;return t===n||t.endsWith(`.${n}`)},iu=(a,e)=>{let t=new URL(e).protocol,n=new URL(a).protocol;return t===n};var om=(0,pt.promisify)(Me.default.pipeline),Ee=Symbol("Body internals"),et=class{constructor(e,{size:t=0}={}){let n=null;e===null?e=null:Wo(e)?e=Te.Buffer.from(e.toString()):zr(e)||Te.Buffer.isBuffer(e)||(pt.types.isAnyArrayBuffer(e)?e=Te.Buffer.from(e):ArrayBuffer.isView(e)?e=Te.Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof Me.default||(e instanceof Jt?(e=tu(e),n=e.type.split("=")[1]):e=Te.Buffer.from(String(e))));let i=e;Te.Buffer.isBuffer(e)?i=Me.default.Readable.from(e):zr(e)&&(i=Me.default.Readable.from(e.stream())),this[Ee]={body:e,stream:i,boundary:n,disturbed:!1,error:null},this.size=t,e instanceof Me.default&&e.on("error",s=>{let u=s instanceof ft?s:new Re(`Invalid response body while trying to fetch ${this.url}: ${s.message}`,"system",s);this[Ee].error=u})}get body(){return this[Ee].stream}get bodyUsed(){return this[Ee].disturbed}async arrayBuffer(){let{buffer:e,byteOffset:t,byteLength:n}=await Ho(this);return e.slice(t,t+n)}async formData(){let e=this.headers.get("content-type");if(e.startsWith("application/x-www-form-urlencoded")){let n=new Jt,i=new URLSearchParams(await this.text());for(let[s,u]of i)n.append(s,u);return n}let{toFormData:t}=await Promise.resolve().then(()=>(uu(),lu));return t(this.body,e)}async blob(){let e=this.headers&&this.headers.get("content-type")||this[Ee].body&&this[Ee].body.type||"",t=await this.arrayBuffer();return new dt([t],{type:e})}async json(){let e=await this.text();return JSON.parse(e)}async text(){let e=await Ho(this);return new TextDecoder().decode(e)}buffer(){return Ho(this)}};et.prototype.buffer=(0,pt.deprecate)(et.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(et.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0,pt.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});async function Ho(a){if(a[Ee].disturbed)throw new TypeError(`body used already for: ${a.url}`);if(a[Ee].disturbed=!0,a[Ee].error)throw a[Ee].error;let{body:e}=a;if(e===null)return Te.Buffer.alloc(0);if(!(e instanceof Me.default))return Te.Buffer.alloc(0);let t=[],n=0;try{for await(let i of e){if(a.size>0&&n+i.length>a.size){let s=new Re(`content size at ${a.url} over limit: ${a.size}`,"max-size");throw e.destroy(s),s}n+=i.length,t.push(i)}}catch(i){throw i instanceof ft?i:new Re(`Invalid response body while trying to fetch ${a.url}: ${i.message}`,"system",i)}if(e.readableEnded===!0||e._readableState.ended===!0)try{return t.every(i=>typeof i=="string")?Te.Buffer.from(t.join("")):Te.Buffer.concat(t,n)}catch(i){throw new Re(`Could not create Buffer from response body for ${a.url}: ${i.message}`,"system",i)}else throw new Re(`Premature close of server response while trying to fetch ${a.url}`)}var wr=(a,e)=>{let t,n,{body:i}=a[Ee];if(a.bodyUsed)throw new Error("cannot clone body after it is used");return i instanceof Me.default&&typeof i.getBoundary!="function"&&(t=new Me.PassThrough({highWaterMark:e}),n=new Me.PassThrough({highWaterMark:e}),i.pipe(t),i.pipe(n),a[Ee].stream=t,i=n),i},am=(0,pt.deprecate)(a=>a.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),Jn=(a,e)=>a===null?null:typeof a=="string"?"text/plain;charset=UTF-8":Wo(a)?"application/x-www-form-urlencoded;charset=UTF-8":zr(a)?a.type||null:Te.Buffer.isBuffer(a)||pt.types.isAnyArrayBuffer(a)||ArrayBuffer.isView(a)?null:a instanceof Jt?`multipart/form-data; boundary=${e[Ee].boundary}`:a&&typeof a.getBoundary=="function"?`multipart/form-data;boundary=${am(a)}`:a instanceof Me.default?null:"text/plain;charset=UTF-8",cu=a=>{let{body:e}=a[Ee];return e===null?0:zr(e)?e.size:Te.Buffer.isBuffer(e)?e.length:e&&typeof e.getLengthSync=="function"&&e.hasKnownLength&&e.hasKnownLength()?e.getLengthSync():null},du=async(a,{body:e})=>{e===null?a.end():await om(e,a)};var Go=require("node:util"),Gr=se(require("node:http"),1),Zn=typeof Gr.default.validateHeaderName=="function"?Gr.default.validateHeaderName:a=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(a)){let e=new TypeError(`Header name must be a valid HTTP token [${a}]`);throw Object.defineProperty(e,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),e}},Ko=typeof Gr.default.validateHeaderValue=="function"?Gr.default.validateHeaderValue:(a,e)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(e)){let t=new TypeError(`Invalid character in header content ["${a}"]`);throw Object.defineProperty(t,"code",{value:"ERR_INVALID_CHAR"}),t}},ke=class a extends URLSearchParams{constructor(e){let t=[];if(e instanceof a){let n=e.raw();for(let[i,s]of Object.entries(n))t.push(...s.map(u=>[i,u]))}else if(e!=null)if(typeof e=="object"&&!Go.types.isBoxedPrimitive(e)){let n=e[Symbol.iterator];if(n==null)t.push(...Object.entries(e));else{if(typeof n!="function")throw new TypeError("Header pairs must be iterable");t=[...e].map(i=>{if(typeof i!="object"||Go.types.isBoxedPrimitive(i))throw new TypeError("Each header pair must be an iterable object");return[...i]}).map(i=>{if(i.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return[...i]})}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return t=t.length>0?t.map(([n,i])=>(Zn(n),Ko(n,String(i)),[String(n).toLowerCase(),String(i)])):void 0,super(t),new Proxy(this,{get(n,i,s){switch(i){case"append":case"set":return(u,f)=>(Zn(u),Ko(u,String(f)),URLSearchParams.prototype[i].call(n,String(u).toLowerCase(),String(f)));case"delete":case"has":case"getAll":return u=>(Zn(u),URLSearchParams.prototype[i].call(n,String(u).toLowerCase()));case"keys":return()=>(n.sort(),new Set(URLSearchParams.prototype.keys.call(n)).keys());default:return Reflect.get(n,i,s)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(e){let t=this.getAll(e);if(t.length===0)return null;let n=t.join(", ");return/^content-encoding$/i.test(e)&&(n=n.toLowerCase()),n}forEach(e,t=void 0){for(let n of this.keys())Reflect.apply(e,t,[this.get(n),n,this])}*values(){for(let e of this.keys())yield this.get(e)}*entries(){for(let e of this.keys())yield[e,this.get(e)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce((e,t)=>(e[t]=this.getAll(t),e),{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce((e,t)=>{let n=this.getAll(t);return t==="host"?e[t]=n[0]:e[t]=n.length>1?n:n[0],e},{})}};Object.defineProperties(ke.prototype,["get","entries","forEach","values"].reduce((a,e)=>(a[e]={enumerable:!0},a),{}));function fu(a=[]){return new ke(a.reduce((e,t,n,i)=>(n%2===0&&e.push(i.slice(n,n+2)),e),[]).filter(([e,t])=>{try{return Zn(e),Ko(e,String(t)),!0}catch{return!1}}))}var sm=new Set([301,302,303,307,308]),ei=a=>sm.has(a);var Xe=Symbol("Response internals"),Ne=class a extends et{constructor(e=null,t={}){super(e,t);let n=t.status!=null?t.status:200,i=new ke(t.headers);if(e!==null&&!i.has("Content-Type")){let s=Jn(e,this);s&&i.append("Content-Type",s)}this[Xe]={type:"default",url:t.url,status:n,statusText:t.statusText||"",headers:i,counter:t.counter,highWaterMark:t.highWaterMark}}get type(){return this[Xe].type}get url(){return this[Xe].url||""}get status(){return this[Xe].status}get ok(){return this[Xe].status>=200&&this[Xe].status<300}get redirected(){return this[Xe].counter>0}get statusText(){return this[Xe].statusText}get headers(){return this[Xe].headers}get highWaterMark(){return this[Xe].highWaterMark}clone(){return new a(wr(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(e,t=302){if(!ei(t))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new a(null,{headers:{location:new URL(e).toString()},status:t})}static error(){let e=new a(null,{status:0,statusText:""});return e[Xe].type="error",e}static json(e=void 0,t={}){let n=JSON.stringify(e);if(n===void 0)throw new TypeError("data is not JSON serializable");let i=new ke(t&&t.headers);return i.has("content-type")||i.set("content-type","application/json"),new a(n,{...t,headers:i})}get[Symbol.toStringTag](){return"Response"}};Object.defineProperties(Ne.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});var vu=require("node:url"),Su=require("node:util");var pu=a=>{if(a.search)return a.search;let e=a.href.length-1,t=a.hash||(a.href[e]==="#"?"#":"");return a.href[e-t.length]==="?"?"?":""};var mu=require("node:net");function hu(a,e=!1){return a==null||(a=new URL(a),/^(about|blob|data):$/.test(a.protocol))?"no-referrer":(a.username="",a.password="",a.hash="",e&&(a.pathname="",a.search=""),a)}var gu=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),_u="strict-origin-when-cross-origin";function bu(a){if(!gu.has(a))throw new TypeError(`Invalid referrerPolicy: ${a}`);return a}function lm(a){if(/^(http|ws)s:$/.test(a.protocol))return!0;let e=a.host.replace(/(^\[)|(]$)/g,""),t=(0,mu.isIP)(e);return t===4&&/^127\./.test(e)||t===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(e)?!0:a.host==="localhost"||a.host.endsWith(".localhost")?!1:a.protocol==="file:"}function vr(a){return/^about:(blank|srcdoc)$/.test(a)||a.protocol==="data:"||/^(blob|filesystem):$/.test(a.protocol)?!0:lm(a)}function yu(a,{referrerURLCallback:e,referrerOriginCallback:t}={}){if(a.referrer==="no-referrer"||a.referrerPolicy==="")return null;let n=a.referrerPolicy;if(a.referrer==="about:client")return"no-referrer";let i=a.referrer,s=hu(i),u=hu(i,!0);s.toString().length>4096&&(s=u),e&&(s=e(s)),t&&(u=t(u));let f=new URL(a.url);switch(n){case"no-referrer":return"no-referrer";case"origin":return u;case"unsafe-url":return s;case"strict-origin":return vr(s)&&!vr(f)?"no-referrer":u.toString();case"strict-origin-when-cross-origin":return s.origin===f.origin?s:vr(s)&&!vr(f)?"no-referrer":u;case"same-origin":return s.origin===f.origin?s:"no-referrer";case"origin-when-cross-origin":return s.origin===f.origin?s:u;case"no-referrer-when-downgrade":return vr(s)&&!vr(f)?"no-referrer":s;default:throw new TypeError(`Invalid referrerPolicy: ${n}`)}}function wu(a){let e=(a.get("referrer-policy")||"").split(/[,\s]+/),t="";for(let n of e)n&&gu.has(n)&&(t=n);return t}var fe=Symbol("Request internals"),Kr=a=>typeof a=="object"&&typeof a[fe]=="object",um=(0,Su.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),er=class a extends et{constructor(e,t={}){let n;if(Kr(e)?n=new URL(e.url):(n=new URL(e),e={}),n.username!==""||n.password!=="")throw new TypeError(`${n} is an url with embedded credentials.`);let i=t.method||e.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(i)&&(i=i.toUpperCase()),!Kr(t)&&"data"in t&&um(),(t.body!=null||Kr(e)&&e.body!==null)&&(i==="GET"||i==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let s=t.body?t.body:Kr(e)&&e.body!==null?wr(e):null;super(s,{size:t.size||e.size||0});let u=new ke(t.headers||e.headers||{});if(s!==null&&!u.has("Content-Type")){let c=Jn(s,this);c&&u.set("Content-Type",c)}let f=Kr(e)?e.signal:null;if("signal"in t&&(f=t.signal),f!=null&&!ru(f))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let d=t.referrer==null?e.referrer:t.referrer;if(d==="")d="no-referrer";else if(d){let c=new URL(d);d=/^about:(\/\/)?client$/.test(c)?"client":c}else d=void 0;this[fe]={method:i,redirect:t.redirect||e.redirect||"follow",headers:u,parsedURL:n,signal:f,referrer:d},this.follow=t.follow===void 0?e.follow===void 0?20:e.follow:t.follow,this.compress=t.compress===void 0?e.compress===void 0?!0:e.compress:t.compress,this.counter=t.counter||e.counter||0,this.agent=t.agent||e.agent,this.highWaterMark=t.highWaterMark||e.highWaterMark||16384,this.insecureHTTPParser=t.insecureHTTPParser||e.insecureHTTPParser||!1,this.referrerPolicy=t.referrerPolicy||e.referrerPolicy||""}get method(){return this[fe].method}get url(){return(0,vu.format)(this[fe].parsedURL)}get headers(){return this[fe].headers}get redirect(){return this[fe].redirect}get signal(){return this[fe].signal}get referrer(){if(this[fe].referrer==="no-referrer")return"";if(this[fe].referrer==="client")return"about:client";if(this[fe].referrer)return this[fe].referrer.toString()}get referrerPolicy(){return this[fe].referrerPolicy}set referrerPolicy(e){this[fe].referrerPolicy=bu(e)}clone(){return new a(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(er.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});var Ru=a=>{let{parsedURL:e}=a[fe],t=new ke(a[fe].headers);t.has("Accept")||t.set("Accept","*/*");let n=null;if(a.body===null&&/^(post|put)$/i.test(a.method)&&(n="0"),a.body!==null){let f=cu(a);typeof f=="number"&&!Number.isNaN(f)&&(n=String(f))}n&&t.set("Content-Length",n),a.referrerPolicy===""&&(a.referrerPolicy=_u),a.referrer&&a.referrer!=="no-referrer"?a[fe].referrer=yu(a):a[fe].referrer="no-referrer",a[fe].referrer instanceof URL&&t.set("Referer",a.referrer),t.has("User-Agent")||t.set("User-Agent","node-fetch"),a.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip, deflate, br");let{agent:i}=a;typeof i=="function"&&(i=i(e));let s=pu(e),u={path:e.pathname+s,method:a.method,headers:t[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:a.insecureHTTPParser,agent:i};return{parsedURL:e,options:u}};var ti=class extends ft{constructor(e,t="aborted"){super(e,t)}};Gn();Vo();var cm=new Set(["data:","http:","https:"]);async function Sr(a,e){return new Promise((t,n)=>{let i=new er(a,e),{parsedURL:s,options:u}=Ru(i);if(!cm.has(s.protocol))throw new TypeError(`node-fetch cannot load ${a}. URL scheme "${s.protocol.replace(/:$/,"")}" is not supported.`);if(s.protocol==="data:"){let y=Gl(i.url),S=new Ne(y,{headers:{"Content-Type":y.typeFull}});t(S);return}let f=(s.protocol==="https:"?Pu.default:Eu.default).request,{signal:d}=i,c=null,p=()=>{let y=new ti("The operation was aborted.");n(y),i.body&&i.body instanceof Ie.default.Readable&&i.body.destroy(y),!(!c||!c.body)&&c.body.emit("error",y)};if(d&&d.aborted){p();return}let _=()=>{p(),g()},b=f(s.toString(),u);d&&d.addEventListener("abort",_);let g=()=>{b.abort(),d&&d.removeEventListener("abort",_)};b.on("error",y=>{n(new Re(`request to ${i.url} failed, reason: ${y.message}`,"system",y)),g()}),dm(b,y=>{c&&c.body&&c.body.destroy(y)}),process.version<"v14"&&b.on("socket",y=>{let S;y.prependListener("end",()=>{S=y._eventsCount}),y.prependListener("close",A=>{if(c&&S<y._eventsCount&&!A){let P=new Error("Premature close");P.code="ERR_STREAM_PREMATURE_CLOSE",c.body.emit("error",P)}})}),b.on("response",y=>{b.setTimeout(0);let S=fu(y.rawHeaders);if(ei(y.statusCode)){let K=S.get("Location"),X=null;try{X=K===null?null:new URL(K,i.url)}catch{if(i.redirect!=="manual"){n(new Re(`uri requested responds with an invalid redirect URL: ${K}`,"invalid-redirect")),g();return}}switch(i.redirect){case"error":n(new Re(`uri requested responds with a redirect, redirect mode is set to error: ${i.url}`,"no-redirect")),g();return;case"manual":break;case"follow":{if(X===null)break;if(i.counter>=i.follow){n(new Re(`maximum redirect reached at: ${i.url}`,"max-redirect")),g();return}let J={headers:new ke(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:wr(i),signal:i.signal,size:i.size,referrer:i.referrer,referrerPolicy:i.referrerPolicy};if(!nu(i.url,X)||!iu(i.url,X))for(let ze of["authorization","www-authenticate","cookie","cookie2"])J.headers.delete(ze);if(y.statusCode!==303&&i.body&&e.body instanceof Ie.default.Readable){n(new Re("Cannot follow redirect with body being a readable stream","unsupported-redirect")),g();return}(y.statusCode===303||(y.statusCode===301||y.statusCode===302)&&i.method==="POST")&&(J.method="GET",J.body=void 0,J.headers.delete("content-length"));let Ve=wu(S);Ve&&(J.referrerPolicy=Ve),t(Sr(new er(X,J))),g();return}default:return n(new TypeError(`Redirect option '${i.redirect}' is not a valid value of RequestRedirect`))}}d&&y.once("end",()=>{d.removeEventListener("abort",_)});let A=(0,Ie.pipeline)(y,new Ie.PassThrough,K=>{K&&n(K)});process.version<"v12.10"&&y.on("aborted",_);let P={url:i.url,status:y.statusCode,statusText:y.statusMessage,headers:S,size:i.size,counter:i.counter,highWaterMark:i.highWaterMark},L=S.get("Content-Encoding");if(!i.compress||i.method==="HEAD"||L===null||y.statusCode===204||y.statusCode===304){c=new Ne(A,P),t(c);return}let Q={flush:tr.default.Z_SYNC_FLUSH,finishFlush:tr.default.Z_SYNC_FLUSH};if(L==="gzip"||L==="x-gzip"){A=(0,Ie.pipeline)(A,tr.default.createGunzip(Q),K=>{K&&n(K)}),c=new Ne(A,P),t(c);return}if(L==="deflate"||L==="x-deflate"){let K=(0,Ie.pipeline)(y,new Ie.PassThrough,X=>{X&&n(X)});K.once("data",X=>{(X[0]&15)===8?A=(0,Ie.pipeline)(A,tr.default.createInflate(),J=>{J&&n(J)}):A=(0,Ie.pipeline)(A,tr.default.createInflateRaw(),J=>{J&&n(J)}),c=new Ne(A,P),t(c)}),K.once("end",()=>{c||(c=new Ne(A,P),t(c))});return}if(L==="br"){A=(0,Ie.pipeline)(A,tr.default.createBrotliDecompress(),K=>{K&&n(K)}),c=new Ne(A,P),t(c);return}c=new Ne(A,P),t(c)}),du(b,i).catch(n)})}function dm(a,e){let t=Xr.Buffer.from(`0\r
2998
+ `,n=e.whitespace?" = ":"=",i=[],s=e.sort?Object.keys(a).sort():Object.keys(a),u=0;e.align&&(u=yt(s.filter(c=>a[c]===null||Array.isArray(a[c])||typeof a[c]!="object").map(c=>Array.isArray(a[c])?`${c}[]`:c).concat([""]).reduce((c,p)=>yt(c).length>=yt(p).length?c:p)).length);let f="",d=e.bracketedArray?"[]":"";for(let c of s){let p=a[c];if(p&&Array.isArray(p))for(let _ of p)f+=yt(`${c}${d}`).padEnd(u," ")+n+yt(_)+t;else p&&typeof p=="object"?i.push(c):f+=yt(c).padEnd(u," ")+n+yt(p)+t}e.section&&f.length&&(f="["+yt(e.section)+"]"+(e.newline?t+t:t)+f);for(let c of i){let p=Yd(c,".").join("\\."),_=(e.section?e.section+".":"")+p,b=ls(a[c],{...e,section:_});f.length&&b.length&&(f+=t),f+=b}return f};function Yd(a,e){var t=0,n=0,i=0,s=[];do if(i=a.indexOf(e,t),i!==-1){if(t=i+e.length,i>0&&a[i-1]==="\\")continue;s.push(a.slice(n,i)),n=i+e.length}while(i!==-1);return s.push(a.slice(n)),s}var Gd=(a,e={})=>{e.bracketedArray=e.bracketedArray!==!1;let t=Object.create(null),n=t,i=null,s=/^\[([^\]]*)\]\s*$|^([^=]+)(=(.*))?$/i,u=a.split(/[\r\n]+/g),f={};for(let c of u){if(!c||c.match(/^\s*[;#]/)||c.match(/^\s*$/))continue;let p=c.match(s);if(!p)continue;if(p[1]!==void 0){if(i=Ci(p[1]),i==="__proto__"){n=Object.create(null);continue}n=t[i]=t[i]||Object.create(null);continue}let _=Ci(p[2]),b;e.bracketedArray?b=_.length>2&&_.slice(-2)==="[]":(f[_]=(f?.[_]||0)+1,b=f[_]>1);let g=b&&_.endsWith("[]")?_.slice(0,-2):_;if(g==="__proto__")continue;let y=p[3]?Ci(p[4]):!0,S=y==="true"||y==="false"||y==="null"?JSON.parse(y):y;b&&(ss.call(n,g)?Array.isArray(n[g])||(n[g]=[n[g]]):n[g]=[]),Array.isArray(n[g])?n[g].push(S):n[g]=S}let d=[];for(let c of Object.keys(t)){if(!ss.call(t,c)||typeof t[c]!="object"||Array.isArray(t[c]))continue;let p=Yd(c,".");n=t;let _=p.pop(),b=_.replace(/\\\./g,".");for(let g of p)g!=="__proto__"&&((!ss.call(n,g)||typeof n[g]!="object")&&(n[g]=Object.create(null)),n=n[g]);n===t&&b===_||(n[b]=t[c],d.push(c))}for(let c of d)delete t[c];return t},Xd=a=>a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"),yt=a=>typeof a!="string"||a.match(/[=\r\n]/)||a.match(/^\[/)||a.length>1&&Xd(a)||a!==a.trim()?JSON.stringify(a):a.split(";").join("\\;").split("#").join("\\#"),Ci=a=>{if(a=(a||"").trim(),Xd(a)){a.charAt(0)==="'"&&(a=a.slice(1,-1));try{a=JSON.parse(a)}catch{}}else{let e=!1,t="";for(let n=0,i=a.length;n<i;n++){let s=a.charAt(n);if(e)"\\;#".indexOf(s)!==-1?t+=s:t+="\\"+s,e=!1;else{if(";#".indexOf(s)!==-1)break;s==="\\"?e=!0:t+=s}}return e&&(t+="\\"),t.trim()}return a};Qd.exports={parse:Gd,decode:Gd,stringify:ls,encode:ls,safe:yt,unsafe:Ci}});var Pb={};ne(Pb,{ActiveFactorioVersion:()=>us,ApiDocGenerator:()=>Zo,BufferSplitter:()=>kr,BufferStream:()=>ar,EncodingUtil:()=>go,FactorioModDebugSession:()=>rs,LuaControlBehaviorType:()=>as,LuaFlowStatisticsType:()=>cn,LuaItemStackType:()=>bt,LuaLSAddon:()=>qo,LuaObjectType:()=>os,MapVersion:()=>Dt,ModManager:()=>Rr,ModSettings:()=>Xr,PropertyTree:()=>Pr,PropertyTreeType:()=>Xo,ProtoDocGenerator:()=>ea,SavedLuaTypeTag:()=>is,ScriptDat:()=>ns,getModInfo:()=>Au,substitutePathVariables:()=>Ii});module.exports=Gp(Pb);var go={};ne(go,{bufferChunks:()=>ho,encodeBreakpoints:()=>mo,encodeVarInt:()=>Yt,luaBlockQuote:()=>Ct,objectToLua:()=>jr});function Ct(a){let e=a.toString().match(/\]=*$/),t="=".repeat((a.toString().match(/\]=*\]/g)||[]).map(n=>n.length-1).reduce((n,i)=>Math.max(n,i),e?e[0].length:0));return Buffer.concat([Buffer.from(`[${t}[`),a,Buffer.from(`]${t}]`)])}function ho(a,e){let t=[],n=a.length,i=0;for(;i<n;)t.push(a.slice(i,i+=e));return t}function jr(a){switch(typeof a){case"object":let e=[Buffer.from("{")];for(let t in a)Object.prototype.hasOwnProperty.call(a,t)&&(e.push(Buffer.from("[")),e.push(jr(t)),e.push(Buffer.from("]=")),e.push(jr(a[t])),e.push(Buffer.from(",")));return e.push(Buffer.from("}")),Buffer.concat(e);case"string":return Buffer.from(`"${a}"`);case"boolean":case"number":return Buffer.from(`${a}`)}}function Yt(a){if(a>4294967280)throw new Error("Values > 0xFFFFFFF0 are reserved");if(a<0)throw new Error("Value must be positive");a===10?a=4294967295:a===26?a=4294967294:a===13&&(a=4294967293);let e,t,n,i;if(a<128)return Buffer.from([a]);a<2048?(i=2,e=192,t=31,n=6):a<65536?(i=3,e=224,t=15,n=12):a<2097152?(i=4,e=240,t=7,n=18):a<67108864?(i=5,e=248,t=3,n=24):(i=6,e=252,t=3,n=30);let s=Buffer.alloc(i);s[0]=e|a>>n&t;for(let u=n-6,f=1;u>=0;u-=6,f++)s[f]=128|a>>u&63;return s}function Vn(a){let e=Buffer.from(a,"utf8"),t=Yt(e.length);return Buffer.concat([t,e])}function Wn(a){let e=Yt(a.line),t=0,n=new Array;return a.condition&&(t|=1,n.push(Vn(a.condition.replace(/[\r\n]+/g," ")))),a.hitCondition&&(t|=2,n.push(Vn(a.hitCondition.replace(/[\r\n]+/g," ")))),a.logMessage&&(t|=4,n.push(Vn(a.logMessage.replace(/[\r\n]+/g," ")))),Buffer.concat([e,Buffer.from([t]),Buffer.concat(n)])}function mo(a,e){let t=Vn(a),n=e.filter(f=>!f.condition&&!f.hitCondition&&!f.logMessage).map(f=>f.line),i;if(n.length===0)i=Buffer.from([255]);else if(n.length===10){let f=Buffer.from([254]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Yt(d)))])}else if(n.length===26){let f=Buffer.from([253]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Yt(d)))])}else if(n.length===13){let f=Buffer.from([252]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Yt(d)))])}else{let f=Buffer.from([n.length]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Yt(d)))])}let s=e.filter(f=>f.condition||f.hitCondition||f.logMessage),u;if(s.length===0)u=Buffer.from([255]);else if(s.length===10){let f=Buffer.from([254]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Wn(d)))])}else if(s.length===26){let f=Buffer.from([253]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Wn(d)))])}else if(s.length===13){let f=Buffer.from([252]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Wn(d)))])}else{let f=Buffer.from([s.length]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Wn(d)))])}return Buffer.concat([t,i,u])}var qo={};ne(qo,{getConfig:()=>Wh,getLuaFiles:()=>jh});var Xt="2.0.0";var zn;async function jh(){if(!zn){zn=[];let a=await Promise.resolve().then(()=>(zl(),Vl)),e=a.default,t=a.filenames;for(let n=0;n<e.length;n++)zn.push({name:t[n].replace("../luals-addon/",""),content:e[n].default})}return zn}async function Wh(a){return{name:"factorio/config.json",content:JSON.stringify(Object.assign(await Promise.resolve().then(()=>se(Hl())),{bundleVersion:Xt,factorioVersion:a}))}}var Ee=se(require("fs/promises")),tt=se(require("path"));var Pu=se(require("node:http"),1),Eu=se(require("node:https"),1),tr=se(require("node:zlib"),1),Ce=se(require("node:stream"),1),Yr=require("node:buffer");function Vh(a){if(!/^data:/i.test(a))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');a=a.replace(/\r?\n/g,"");let e=a.indexOf(",");if(e===-1||e<=4)throw new TypeError("malformed data: URI");let t=a.substring(5,e).split(";"),n="",i=!1,s=t[0]||"text/plain",u=s;for(let p=1;p<t.length;p++)t[p]==="base64"?i=!0:t[p]&&(u+=`;${t[p]}`,t[p].indexOf("charset=")===0&&(n=t[p].substring(8)));!t[0]&&!n.length&&(u+=";charset=US-ASCII",n="US-ASCII");let f=i?"base64":"ascii",d=unescape(a.substring(e+1)),c=Buffer.from(d,f);return c.type=s,c.typeFull=u,c.charset=n,c}var Kl=Vh;var Me=se(require("node:stream"),1),pt=require("node:util"),Te=require("node:buffer");Wr();Kn();var ft=class extends Error{constructor(e,t){super(e),Error.captureStackTrace(this,this.constructor),this.type=t}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}};var Re=class extends ft{constructor(e,t,n){super(e,t),n&&(this.code=this.errno=n.code,this.erroredSysCall=n.syscall)}};var Gn=Symbol.toStringTag,Wo=a=>typeof a=="object"&&typeof a.append=="function"&&typeof a.delete=="function"&&typeof a.get=="function"&&typeof a.getAll=="function"&&typeof a.has=="function"&&typeof a.set=="function"&&typeof a.sort=="function"&&a[Gn]==="URLSearchParams",zr=a=>a&&typeof a=="object"&&typeof a.arrayBuffer=="function"&&typeof a.type=="string"&&typeof a.stream=="function"&&typeof a.constructor=="function"&&/^(Blob|File)$/.test(a[Gn]),ru=a=>typeof a=="object"&&(a[Gn]==="AbortSignal"||a[Gn]==="EventTarget"),nu=(a,e)=>{let t=new URL(e).hostname,n=new URL(a).hostname;return t===n||t.endsWith(`.${n}`)},iu=(a,e)=>{let t=new URL(e).protocol,n=new URL(a).protocol;return t===n};var om=(0,pt.promisify)(Me.default.pipeline),Pe=Symbol("Body internals"),et=class{constructor(e,{size:t=0}={}){let n=null;e===null?e=null:Wo(e)?e=Te.Buffer.from(e.toString()):zr(e)||Te.Buffer.isBuffer(e)||(pt.types.isAnyArrayBuffer(e)?e=Te.Buffer.from(e):ArrayBuffer.isView(e)?e=Te.Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof Me.default||(e instanceof Jt?(e=tu(e),n=e.type.split("=")[1]):e=Te.Buffer.from(String(e))));let i=e;Te.Buffer.isBuffer(e)?i=Me.default.Readable.from(e):zr(e)&&(i=Me.default.Readable.from(e.stream())),this[Pe]={body:e,stream:i,boundary:n,disturbed:!1,error:null},this.size=t,e instanceof Me.default&&e.on("error",s=>{let u=s instanceof ft?s:new Re(`Invalid response body while trying to fetch ${this.url}: ${s.message}`,"system",s);this[Pe].error=u})}get body(){return this[Pe].stream}get bodyUsed(){return this[Pe].disturbed}async arrayBuffer(){let{buffer:e,byteOffset:t,byteLength:n}=await Ho(this);return e.slice(t,t+n)}async formData(){let e=this.headers.get("content-type");if(e.startsWith("application/x-www-form-urlencoded")){let n=new Jt,i=new URLSearchParams(await this.text());for(let[s,u]of i)n.append(s,u);return n}let{toFormData:t}=await Promise.resolve().then(()=>(uu(),lu));return t(this.body,e)}async blob(){let e=this.headers&&this.headers.get("content-type")||this[Pe].body&&this[Pe].body.type||"",t=await this.arrayBuffer();return new dt([t],{type:e})}async json(){let e=await this.text();return JSON.parse(e)}async text(){let e=await Ho(this);return new TextDecoder().decode(e)}buffer(){return Ho(this)}};et.prototype.buffer=(0,pt.deprecate)(et.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(et.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0,pt.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});async function Ho(a){if(a[Pe].disturbed)throw new TypeError(`body used already for: ${a.url}`);if(a[Pe].disturbed=!0,a[Pe].error)throw a[Pe].error;let{body:e}=a;if(e===null)return Te.Buffer.alloc(0);if(!(e instanceof Me.default))return Te.Buffer.alloc(0);let t=[],n=0;try{for await(let i of e){if(a.size>0&&n+i.length>a.size){let s=new Re(`content size at ${a.url} over limit: ${a.size}`,"max-size");throw e.destroy(s),s}n+=i.length,t.push(i)}}catch(i){throw i instanceof ft?i:new Re(`Invalid response body while trying to fetch ${a.url}: ${i.message}`,"system",i)}if(e.readableEnded===!0||e._readableState.ended===!0)try{return t.every(i=>typeof i=="string")?Te.Buffer.from(t.join("")):Te.Buffer.concat(t,n)}catch(i){throw new Re(`Could not create Buffer from response body for ${a.url}: ${i.message}`,"system",i)}else throw new Re(`Premature close of server response while trying to fetch ${a.url}`)}var wr=(a,e)=>{let t,n,{body:i}=a[Pe];if(a.bodyUsed)throw new Error("cannot clone body after it is used");return i instanceof Me.default&&typeof i.getBoundary!="function"&&(t=new Me.PassThrough({highWaterMark:e}),n=new Me.PassThrough({highWaterMark:e}),i.pipe(t),i.pipe(n),a[Pe].stream=t,i=n),i},am=(0,pt.deprecate)(a=>a.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),Jn=(a,e)=>a===null?null:typeof a=="string"?"text/plain;charset=UTF-8":Wo(a)?"application/x-www-form-urlencoded;charset=UTF-8":zr(a)?a.type||null:Te.Buffer.isBuffer(a)||pt.types.isAnyArrayBuffer(a)||ArrayBuffer.isView(a)?null:a instanceof Jt?`multipart/form-data; boundary=${e[Pe].boundary}`:a&&typeof a.getBoundary=="function"?`multipart/form-data;boundary=${am(a)}`:a instanceof Me.default?null:"text/plain;charset=UTF-8",cu=a=>{let{body:e}=a[Pe];return e===null?0:zr(e)?e.size:Te.Buffer.isBuffer(e)?e.length:e&&typeof e.getLengthSync=="function"&&e.hasKnownLength&&e.hasKnownLength()?e.getLengthSync():null},du=async(a,{body:e})=>{e===null?a.end():await om(e,a)};var Ko=require("node:util"),Kr=se(require("node:http"),1),Zn=typeof Kr.default.validateHeaderName=="function"?Kr.default.validateHeaderName:a=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(a)){let e=new TypeError(`Header name must be a valid HTTP token [${a}]`);throw Object.defineProperty(e,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),e}},Go=typeof Kr.default.validateHeaderValue=="function"?Kr.default.validateHeaderValue:(a,e)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(e)){let t=new TypeError(`Invalid character in header content ["${a}"]`);throw Object.defineProperty(t,"code",{value:"ERR_INVALID_CHAR"}),t}},ke=class a extends URLSearchParams{constructor(e){let t=[];if(e instanceof a){let n=e.raw();for(let[i,s]of Object.entries(n))t.push(...s.map(u=>[i,u]))}else if(e!=null)if(typeof e=="object"&&!Ko.types.isBoxedPrimitive(e)){let n=e[Symbol.iterator];if(n==null)t.push(...Object.entries(e));else{if(typeof n!="function")throw new TypeError("Header pairs must be iterable");t=[...e].map(i=>{if(typeof i!="object"||Ko.types.isBoxedPrimitive(i))throw new TypeError("Each header pair must be an iterable object");return[...i]}).map(i=>{if(i.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return[...i]})}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return t=t.length>0?t.map(([n,i])=>(Zn(n),Go(n,String(i)),[String(n).toLowerCase(),String(i)])):void 0,super(t),new Proxy(this,{get(n,i,s){switch(i){case"append":case"set":return(u,f)=>(Zn(u),Go(u,String(f)),URLSearchParams.prototype[i].call(n,String(u).toLowerCase(),String(f)));case"delete":case"has":case"getAll":return u=>(Zn(u),URLSearchParams.prototype[i].call(n,String(u).toLowerCase()));case"keys":return()=>(n.sort(),new Set(URLSearchParams.prototype.keys.call(n)).keys());default:return Reflect.get(n,i,s)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(e){let t=this.getAll(e);if(t.length===0)return null;let n=t.join(", ");return/^content-encoding$/i.test(e)&&(n=n.toLowerCase()),n}forEach(e,t=void 0){for(let n of this.keys())Reflect.apply(e,t,[this.get(n),n,this])}*values(){for(let e of this.keys())yield this.get(e)}*entries(){for(let e of this.keys())yield[e,this.get(e)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce((e,t)=>(e[t]=this.getAll(t),e),{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce((e,t)=>{let n=this.getAll(t);return t==="host"?e[t]=n[0]:e[t]=n.length>1?n:n[0],e},{})}};Object.defineProperties(ke.prototype,["get","entries","forEach","values"].reduce((a,e)=>(a[e]={enumerable:!0},a),{}));function fu(a=[]){return new ke(a.reduce((e,t,n,i)=>(n%2===0&&e.push(i.slice(n,n+2)),e),[]).filter(([e,t])=>{try{return Zn(e),Go(e,String(t)),!0}catch{return!1}}))}var sm=new Set([301,302,303,307,308]),ei=a=>sm.has(a);var Ye=Symbol("Response internals"),Ne=class a extends et{constructor(e=null,t={}){super(e,t);let n=t.status!=null?t.status:200,i=new ke(t.headers);if(e!==null&&!i.has("Content-Type")){let s=Jn(e,this);s&&i.append("Content-Type",s)}this[Ye]={type:"default",url:t.url,status:n,statusText:t.statusText||"",headers:i,counter:t.counter,highWaterMark:t.highWaterMark}}get type(){return this[Ye].type}get url(){return this[Ye].url||""}get status(){return this[Ye].status}get ok(){return this[Ye].status>=200&&this[Ye].status<300}get redirected(){return this[Ye].counter>0}get statusText(){return this[Ye].statusText}get headers(){return this[Ye].headers}get highWaterMark(){return this[Ye].highWaterMark}clone(){return new a(wr(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(e,t=302){if(!ei(t))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new a(null,{headers:{location:new URL(e).toString()},status:t})}static error(){let e=new a(null,{status:0,statusText:""});return e[Ye].type="error",e}static json(e=void 0,t={}){let n=JSON.stringify(e);if(n===void 0)throw new TypeError("data is not JSON serializable");let i=new ke(t&&t.headers);return i.has("content-type")||i.set("content-type","application/json"),new a(n,{...t,headers:i})}get[Symbol.toStringTag](){return"Response"}};Object.defineProperties(Ne.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});var vu=require("node:url"),Su=require("node:util");var pu=a=>{if(a.search)return a.search;let e=a.href.length-1,t=a.hash||(a.href[e]==="#"?"#":"");return a.href[e-t.length]==="?"?"?":""};var mu=require("node:net");function hu(a,e=!1){return a==null||(a=new URL(a),/^(about|blob|data):$/.test(a.protocol))?"no-referrer":(a.username="",a.password="",a.hash="",e&&(a.pathname="",a.search=""),a)}var gu=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),_u="strict-origin-when-cross-origin";function bu(a){if(!gu.has(a))throw new TypeError(`Invalid referrerPolicy: ${a}`);return a}function lm(a){if(/^(http|ws)s:$/.test(a.protocol))return!0;let e=a.host.replace(/(^\[)|(]$)/g,""),t=(0,mu.isIP)(e);return t===4&&/^127\./.test(e)||t===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(e)?!0:a.host==="localhost"||a.host.endsWith(".localhost")?!1:a.protocol==="file:"}function vr(a){return/^about:(blank|srcdoc)$/.test(a)||a.protocol==="data:"||/^(blob|filesystem):$/.test(a.protocol)?!0:lm(a)}function yu(a,{referrerURLCallback:e,referrerOriginCallback:t}={}){if(a.referrer==="no-referrer"||a.referrerPolicy==="")return null;let n=a.referrerPolicy;if(a.referrer==="about:client")return"no-referrer";let i=a.referrer,s=hu(i),u=hu(i,!0);s.toString().length>4096&&(s=u),e&&(s=e(s)),t&&(u=t(u));let f=new URL(a.url);switch(n){case"no-referrer":return"no-referrer";case"origin":return u;case"unsafe-url":return s;case"strict-origin":return vr(s)&&!vr(f)?"no-referrer":u.toString();case"strict-origin-when-cross-origin":return s.origin===f.origin?s:vr(s)&&!vr(f)?"no-referrer":u;case"same-origin":return s.origin===f.origin?s:"no-referrer";case"origin-when-cross-origin":return s.origin===f.origin?s:u;case"no-referrer-when-downgrade":return vr(s)&&!vr(f)?"no-referrer":s;default:throw new TypeError(`Invalid referrerPolicy: ${n}`)}}function wu(a){let e=(a.get("referrer-policy")||"").split(/[,\s]+/),t="";for(let n of e)n&&gu.has(n)&&(t=n);return t}var fe=Symbol("Request internals"),Gr=a=>typeof a=="object"&&typeof a[fe]=="object",um=(0,Su.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),er=class a extends et{constructor(e,t={}){let n;if(Gr(e)?n=new URL(e.url):(n=new URL(e),e={}),n.username!==""||n.password!=="")throw new TypeError(`${n} is an url with embedded credentials.`);let i=t.method||e.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(i)&&(i=i.toUpperCase()),!Gr(t)&&"data"in t&&um(),(t.body!=null||Gr(e)&&e.body!==null)&&(i==="GET"||i==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let s=t.body?t.body:Gr(e)&&e.body!==null?wr(e):null;super(s,{size:t.size||e.size||0});let u=new ke(t.headers||e.headers||{});if(s!==null&&!u.has("Content-Type")){let c=Jn(s,this);c&&u.set("Content-Type",c)}let f=Gr(e)?e.signal:null;if("signal"in t&&(f=t.signal),f!=null&&!ru(f))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let d=t.referrer==null?e.referrer:t.referrer;if(d==="")d="no-referrer";else if(d){let c=new URL(d);d=/^about:(\/\/)?client$/.test(c)?"client":c}else d=void 0;this[fe]={method:i,redirect:t.redirect||e.redirect||"follow",headers:u,parsedURL:n,signal:f,referrer:d},this.follow=t.follow===void 0?e.follow===void 0?20:e.follow:t.follow,this.compress=t.compress===void 0?e.compress===void 0?!0:e.compress:t.compress,this.counter=t.counter||e.counter||0,this.agent=t.agent||e.agent,this.highWaterMark=t.highWaterMark||e.highWaterMark||16384,this.insecureHTTPParser=t.insecureHTTPParser||e.insecureHTTPParser||!1,this.referrerPolicy=t.referrerPolicy||e.referrerPolicy||""}get method(){return this[fe].method}get url(){return(0,vu.format)(this[fe].parsedURL)}get headers(){return this[fe].headers}get redirect(){return this[fe].redirect}get signal(){return this[fe].signal}get referrer(){if(this[fe].referrer==="no-referrer")return"";if(this[fe].referrer==="client")return"about:client";if(this[fe].referrer)return this[fe].referrer.toString()}get referrerPolicy(){return this[fe].referrerPolicy}set referrerPolicy(e){this[fe].referrerPolicy=bu(e)}clone(){return new a(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(er.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});var Ru=a=>{let{parsedURL:e}=a[fe],t=new ke(a[fe].headers);t.has("Accept")||t.set("Accept","*/*");let n=null;if(a.body===null&&/^(post|put)$/i.test(a.method)&&(n="0"),a.body!==null){let f=cu(a);typeof f=="number"&&!Number.isNaN(f)&&(n=String(f))}n&&t.set("Content-Length",n),a.referrerPolicy===""&&(a.referrerPolicy=_u),a.referrer&&a.referrer!=="no-referrer"?a[fe].referrer=yu(a):a[fe].referrer="no-referrer",a[fe].referrer instanceof URL&&t.set("Referer",a.referrer),t.has("User-Agent")||t.set("User-Agent","node-fetch"),a.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip, deflate, br");let{agent:i}=a;typeof i=="function"&&(i=i(e));let s=pu(e),u={path:e.pathname+s,method:a.method,headers:t[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:a.insecureHTTPParser,agent:i};return{parsedURL:e,options:u}};var ti=class extends ft{constructor(e,t="aborted"){super(e,t)}};Kn();Vo();var cm=new Set(["data:","http:","https:"]);async function Sr(a,e){return new Promise((t,n)=>{let i=new er(a,e),{parsedURL:s,options:u}=Ru(i);if(!cm.has(s.protocol))throw new TypeError(`node-fetch cannot load ${a}. URL scheme "${s.protocol.replace(/:$/,"")}" is not supported.`);if(s.protocol==="data:"){let y=Kl(i.url),S=new Ne(y,{headers:{"Content-Type":y.typeFull}});t(S);return}let f=(s.protocol==="https:"?Eu.default:Pu.default).request,{signal:d}=i,c=null,p=()=>{let y=new ti("The operation was aborted.");n(y),i.body&&i.body instanceof Ce.default.Readable&&i.body.destroy(y),!(!c||!c.body)&&c.body.emit("error",y)};if(d&&d.aborted){p();return}let _=()=>{p(),g()},b=f(s.toString(),u);d&&d.addEventListener("abort",_);let g=()=>{b.abort(),d&&d.removeEventListener("abort",_)};b.on("error",y=>{n(new Re(`request to ${i.url} failed, reason: ${y.message}`,"system",y)),g()}),dm(b,y=>{c&&c.body&&c.body.destroy(y)}),process.version<"v14"&&b.on("socket",y=>{let S;y.prependListener("end",()=>{S=y._eventsCount}),y.prependListener("close",A=>{if(c&&S<y._eventsCount&&!A){let E=new Error("Premature close");E.code="ERR_STREAM_PREMATURE_CLOSE",c.body.emit("error",E)}})}),b.on("response",y=>{b.setTimeout(0);let S=fu(y.rawHeaders);if(ei(y.statusCode)){let G=S.get("Location"),Y=null;try{Y=G===null?null:new URL(G,i.url)}catch{if(i.redirect!=="manual"){n(new Re(`uri requested responds with an invalid redirect URL: ${G}`,"invalid-redirect")),g();return}}switch(i.redirect){case"error":n(new Re(`uri requested responds with a redirect, redirect mode is set to error: ${i.url}`,"no-redirect")),g();return;case"manual":break;case"follow":{if(Y===null)break;if(i.counter>=i.follow){n(new Re(`maximum redirect reached at: ${i.url}`,"max-redirect")),g();return}let J={headers:new ke(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:wr(i),signal:i.signal,size:i.size,referrer:i.referrer,referrerPolicy:i.referrerPolicy};if(!nu(i.url,Y)||!iu(i.url,Y))for(let ze of["authorization","www-authenticate","cookie","cookie2"])J.headers.delete(ze);if(y.statusCode!==303&&i.body&&e.body instanceof Ce.default.Readable){n(new Re("Cannot follow redirect with body being a readable stream","unsupported-redirect")),g();return}(y.statusCode===303||(y.statusCode===301||y.statusCode===302)&&i.method==="POST")&&(J.method="GET",J.body=void 0,J.headers.delete("content-length"));let Ve=wu(S);Ve&&(J.referrerPolicy=Ve),t(Sr(new er(Y,J))),g();return}default:return n(new TypeError(`Redirect option '${i.redirect}' is not a valid value of RequestRedirect`))}}d&&y.once("end",()=>{d.removeEventListener("abort",_)});let A=(0,Ce.pipeline)(y,new Ce.PassThrough,G=>{G&&n(G)});process.version<"v12.10"&&y.on("aborted",_);let E={url:i.url,status:y.statusCode,statusText:y.statusMessage,headers:S,size:i.size,counter:i.counter,highWaterMark:i.highWaterMark},L=S.get("Content-Encoding");if(!i.compress||i.method==="HEAD"||L===null||y.statusCode===204||y.statusCode===304){c=new Ne(A,E),t(c);return}let Q={flush:tr.default.Z_SYNC_FLUSH,finishFlush:tr.default.Z_SYNC_FLUSH};if(L==="gzip"||L==="x-gzip"){A=(0,Ce.pipeline)(A,tr.default.createGunzip(Q),G=>{G&&n(G)}),c=new Ne(A,E),t(c);return}if(L==="deflate"||L==="x-deflate"){let G=(0,Ce.pipeline)(y,new Ce.PassThrough,Y=>{Y&&n(Y)});G.once("data",Y=>{(Y[0]&15)===8?A=(0,Ce.pipeline)(A,tr.default.createInflate(),J=>{J&&n(J)}):A=(0,Ce.pipeline)(A,tr.default.createInflateRaw(),J=>{J&&n(J)}),c=new Ne(A,E),t(c)}),G.once("end",()=>{c||(c=new Ne(A,E),t(c))});return}if(L==="br"){A=(0,Ce.pipeline)(A,tr.default.createBrotliDecompress(),G=>{G&&n(G)}),c=new Ne(A,E),t(c);return}c=new Ne(A,E),t(c)}),du(b,i).catch(n)})}function dm(a,e){let t=Yr.Buffer.from(`0\r
2924
2999
  \r
2925
- `),n=!1,i=!1,s;a.on("response",u=>{let{headers:f}=u;n=f["transfer-encoding"]==="chunked"&&!f["content-length"]}),a.on("socket",u=>{let f=()=>{if(n&&!i){let c=new Error("Premature close");c.code="ERR_STREAM_PREMATURE_CLOSE",e(c)}},d=c=>{i=Xr.Buffer.compare(c.slice(-5),t)===0,!i&&s&&(i=Xr.Buffer.compare(s.slice(-3),t.slice(0,3))===0&&Xr.Buffer.compare(c.slice(-2),t.slice(3))===0),s=c};u.prependListener("close",f),u.on("data",d),a.on("close",()=>{u.removeListener("close",f),u.removeListener("data",d)})})}var hm={debugadapter:{version:Yt,zip:async()=>(await Promise.resolve().then(()=>se(Lu()))).default},"debugadapter-tests":{version:Yt,zip:async()=>(await Promise.resolve().then(()=>se(xu()))).default}};async function Au(a,e){let t=await Sr(`https://mods.factorio.com/api/mods/${a}${e?"/full":""}`);if(!t.ok)throw new Error(t.statusText);return await t.json()}var Rr=class{constructor(e,t){this.modsPath=e;this.playerdataPath=t;this.Loaded=this.reload()}modList={mods:[]};Loaded;async reload(){let e=tt.resolve(this.modsPath,"./mod-list.json");try{this.modList=JSON.parse(await Pe.readFile(e,"utf8"))}catch{this.modList={mods:[]}}}async write(){let e=tt.resolve(this.modsPath,"./mod-list.json");return Pe.writeFile(e,JSON.stringify(this.modList,null,2),"utf8")}async getDownloadCredentials(e){let t=this.playerdataPath??tt.resolve(this.modsPath,"../player-data.json"),n=t?await Pe.readFile(t,"utf8").then(f=>JSON.parse(f)).catch(()=>{}):void 0;if(n?.["service-token"])return{username:n["service-username"],token:n["service-token"]};let i=await e(n?.["service-username"]),s=await Sr("https://auth.factorio.com/api-login",{method:"POST",body:new URLSearchParams({username:i.username,password:i.password,api_version:"4",require_game_ownership:"true"})});if(!s.ok)throw new Error(s.statusText);let u=await s.json();return n&&(n["service-username"]=u.username,n["service-token"]=u.token,await Pe.writeFile(t,JSON.stringify(n,void 0,2))),u}async findInstallSource(e,t){if(t.origin!=="portal"){let s=hm[e];if(s)return s;if(t.origin==="bundle")throw new Error(`No bundled package for ${e}`)}let n=await Au(e),i=n.releases[n.releases.length-1];return{version:i.version,zip:async()=>{let s=await this.getDownloadCredentials(t.credentialPrompt),u=await Sr(`https://mods.factorio.com/${i.download_url}?username=${s.username}&token=${s.token}`);if(!u.ok)throw new Error(u.statusText);return u.body}}}async installMod(e,t){let n=await this.findInstallSource(e,t),i=n.version,s=this.modList.mods.find(p=>p.name===e),u=s?.enabled?s.version??!0:s?.enabled;async function f(p){let _=tt.resolve(p,"info.json");try{let b=await Pe.readFile(_,"utf8");if(b){let g=JSON.parse(b);if(g.name===e&&g.version===i)return!0}}catch{}return!1}if(!t.force){if(await f(tt.resolve(this.modsPath,e)))return this.set(e,i),{using:i,from:"folder",previous:u};if(await f(tt.resolve(this.modsPath,`${e}_${i}`)))return this.set(e,i),{using:i,from:"versioned_folder",previous:u};try{return await Pe.access(tt.resolve(this.modsPath,`${e}_${i}.zip`)),this.set(e,i),{using:i,from:"existing",previous:u}}catch{}}let d=Pe.writeFile(tt.resolve(this.modsPath,`${e}_${i}.zip`),await n.zip()),c;if(!t.keepOld){let p=(await Pe.readdir(this.modsPath,"utf8")).filter(_=>_.startsWith(e)&&_.endsWith(".zip")&&_.substring(e.length,_.length-4).match(/^_[\d\.]+$/)&&_!==`${e}_${i}.zip`);p.length===1&&(await Pe.unlink(tt.resolve(this.modsPath,p[0])),c=p[0].substring(e.length+1,p[0].length-4))}return this.set(e,i),await d,{using:i,from:"installed",previous:u,replaced:c}}set(e,t){let n=!!t,i=typeof t=="string"?t:void 0,s=this.modList.mods.find(u=>u.name===e);s?(s.enabled=n,s.version=i):this.modList.mods.push({name:e,enabled:n,version:i})}disableAll(){this.modList.mods.forEach(e=>e.enabled=!1)}};var Yo=(d=>(d[d.none=0]="none",d[d.bool=1]="bool",d[d.number=2]="number",d[d.string=3]="string",d[d.list=4]="list",d[d.dictionary=5]="dictionary",d[d.signedinteger=6]="signedinteger",d[d.unsignedinteger=7]="unsignedinteger",d))(Yo||{});function Xo(a){if(a.readUInt8()!==0)return"";{let t=a.readPackedUInt_8_32();return a.readString(t)}}var Er=class a{constructor(){}static load(e){let t=e.readUInt8();switch(e.readUInt8(),t){case 0:return{type:t};case 1:return{type:t,value:e.readUInt8()!==0};case 2:return{type:t,value:e.readDoubleLE()};case 3:return{type:t,value:Xo(e)};case 4:{let n=e.readUInt32LE(),i=[];for(let s=0;s<n;s++){Xo(e);let u=a.load(e);i.push(u)}return{type:t,value:i}}case 5:{let n=e.readUInt32LE(),i={};for(let s=0;s<n;s++){let u=Xo(e);if(!u)throw new Error("Missing key in PropertyTree Dictionary");let f=a.load(e);i[u]=f}return{type:t,value:i}}case 6:return{type:t,value:e.readBigInt64LE()};case 7:return{type:t,value:e.readBigUInt64LE()};default:throw new Error(`Invalid datatype in PropertyTree ${t}`)}}static saveString(e){if(!e)return Buffer.from([1]);let t=Buffer.from(e,"utf8"),n=Buffer.alloc(1);return t.length<255?n.writeUInt8(t.length):(n=Buffer.alloc(5),n.writeUInt8(255),n.writeUInt32LE(t.length,1)),Buffer.concat([Buffer.from([0]),n,t])}static typeTag(e){return Buffer.from([e,0])}static save(e){switch(e.type){case 3:return Buffer.concat([a.typeTag(3),a.saveString(e.value)]);case 1:return Buffer.concat([a.typeTag(1),Buffer.from([e.value?1:0])]);case 2:{let t=Buffer.alloc(8);return t.writeDoubleLE(e.value),Buffer.concat([a.typeTag(2),t])}case 6:{let t=Buffer.alloc(8);return t.writeBigInt64LE(e.value),Buffer.concat([a.typeTag(6),t])}case 7:{let t=Buffer.alloc(8);return t.writeBigUInt64LE(e.value),Buffer.concat([a.typeTag(7),t])}case 0:return a.typeTag(0);case 4:{let t=Buffer.alloc(4);return t.writeUInt32LE(e.value.length),Buffer.concat([a.typeTag(4),t,Buffer.concat(e.value.map(n=>Buffer.concat([a.saveString(""),a.save(n)])))])}case 5:{let t=[];for(let i in e.value)if(Object.prototype.hasOwnProperty.call(e.value,i)){let s=e.value[i];t.push(Buffer.concat([a.saveString(i),a.save(s)]))}let n=Buffer.alloc(4);return n.writeUInt32LE(t.length),Buffer.concat([a.typeTag(5),n,Buffer.concat(t)])}default:throw new Error(`Invalid datatype in PropertyTree ${e.type}`)}}};var Dt=class a{constructor(e,t,n,i,s){this.main=e;this.major=t;this.minor=n;this.patch=i;this.branch=s}static load(e){let t=e.readUInt16LE(0),n=e.readUInt16LE(2),i=e.readUInt16LE(4),s=e.readUInt16LE(6),u=e.readUInt8(8);return new a(t,n,i,s,u)}save(){let e=Buffer.alloc(9);return e.writeUInt16LE(this.main,0),e.writeUInt16LE(this.major,2),e.writeUInt16LE(this.minor,4),e.writeUInt16LE(this.patch,6),e.writeUInt8(this.branch,8),e}format(){return`${this.main}.${this.major}.${this.minor}-${this.patch}`}isBeyond(e,t,n,i){return this.main<e?!1:t===void 0?!0:this.major<t?!1:n===void 0?!0:this.minor<n?!1:i===void 0?!0:!(this.patch<i)}};var ri=se(require("assert")),Tu=["startup","runtime-global","runtime-per-user"],Yr=class{version;_settings;constructor(e){this.version=Dt.load(e.read(9));let t=Er.load(e);(0,ri.default)(t.type===5);let n={startup:{},"runtime-global":{},"runtime-per-user":{}};for(let i of Tu){let s=t.value[i];(0,ri.default)(s.type===5);let u=n[i];for(let f in s.value){let d=s.value[f];(0,ri.default)(d.type===5);let c=d.value.value;switch(c.type){case 3:u[f]={type:"string",value:c.value};break;case 2:u[f]={type:"number",value:c.value};break;case 6:u[f]={type:"int",value:c.value};break;case 1:u[f]={type:"bool",value:c.value};break;case 5:let p=c.value;if("r"in p&&p.r.type===2&&"g"in p&&p.g.type===2&&"b"in p&&p.b.type===2&&"a"in p&&p.a.type===2)u[f]={type:"color",value:{r:p.r.value,g:p.g.value,b:p.b.value,a:p.a.value}};else throw new Error(`Dictionary value in ModSettings Tree does not match any known structure at ${i} ${f}`);break;default:throw new Error(`Unexpected type in ModSettings Tree: ${c.type}`)}}}this._settings=n}get settings(){return this._settings}save(){let e={type:5,value:{}};for(let t of Tu){let n=this._settings[t],i={type:5,value:{}};e.value[t]=i;for(let s in n){let u=n[s];switch(u.type){case"string":i.value[s]={type:5,value:{value:{type:3,value:u.value}}};break;case"bool":i.value[s]={type:5,value:{value:{type:1,value:u.value}}};break;case"int":i.value[s]={type:5,value:{value:{type:6,value:u.value}}};break;case"number":i.value[s]={type:5,value:{value:{type:2,value:u.value}}};break;case"color":i.value[s]={type:5,value:{value:{type:5,value:{r:{type:2,value:u.value.r},g:{type:2,value:u.value.g},b:{type:2,value:u.value.b},a:{type:2,value:u.value.a}}}}};break;default:break}}}return Buffer.concat([this.version.save(),Er.save(e)])}set(e,t,n){n===void 0?delete this._settings[e][t]:this._settings[e][t]=n}get(e,t){return this._settings[e][t]}*list(){for(let e in this._settings)for(let t in this._settings[e]){let n=this._settings[e][t];yield{scope:e,setting:t,value:n.value}}}};var de=1e5,$t={adjust:{table:{BlueprintEntity:{parameters:[{name:"orientation",order:de++,description:"",optional:!0,type:"number"},{name:"recipe",order:de++,description:"",optional:!0,type:"string"},{name:"inventory",order:de++,description:"",optional:!0,type:{complex_type:"table",parameters:[{name:"bar",order:de++,description:"",optional:!0,type:"number"},{name:"filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"InventoryFilter"}}]}},{name:"bar",order:de++,description:"",optional:!0,type:"number"},{name:"filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"InventoryFilter"}},{name:"type",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"input"},{complex_type:"literal",value:"output"}]}},{name:"input_priority",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"left"},{complex_type:"literal",value:"right"}]}},{name:"output_priority",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"left"},{complex_type:"literal",value:"right"}]}},{name:"filter",order:de++,description:"",optional:!0,type:"string"},{name:"filter_mode",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"whitelist"},{complex_type:"literal",value:"blacklist"}]}},{name:"override_stack_size",order:de++,description:"",optional:!0,type:"number"},{name:"request_filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"LogisticFilter"}},{name:"request_from_buffers",order:de++,description:"",optional:!0,type:"boolean"},{name:"parameters",order:de++,description:"",optional:!0,type:"ProgrammableSpeakerParameters"},{name:"alert_parameters",order:de++,description:"",optional:!0,type:"ProgrammableSpeakerAlertParameters"},{name:"color",order:de++,description:"",optional:!0,type:"Color"},{name:"station",order:de++,description:"",optional:!0,type:"string"}]}},class:{LuaLazyLoadedValue:{generic_params:["T"],generic_parent:"{get:fun():T}"},LuaCustomTable:{generic_params:["K","V"],generic_parent:"{[K]:V}",no_index:!0},LuaGuiElement:{index_key:{complex_type:"union",options:["string","uint"]},split_funcs:!0}},define:{"defines.prototypes":{owntype:!0}}}};function mm(a){return["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"].includes(a)?`${a}_`:a}function Lr(a){return mm(a.replace(/[^a-zA-Z0-9]/g,"_").replace(/^([0-9])/,"_$1"))}function Qo(a){return!!a.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)}async function Ft(a,e){if(!e)return;let t=await e;t&&a.write(`---${t.replace(/\n/g,`
3000
+ `),n=!1,i=!1,s;a.on("response",u=>{let{headers:f}=u;n=f["transfer-encoding"]==="chunked"&&!f["content-length"]}),a.on("socket",u=>{let f=()=>{if(n&&!i){let c=new Error("Premature close");c.code="ERR_STREAM_PREMATURE_CLOSE",e(c)}},d=c=>{i=Yr.Buffer.compare(c.slice(-5),t)===0,!i&&s&&(i=Yr.Buffer.compare(s.slice(-3),t.slice(0,3))===0&&Yr.Buffer.compare(c.slice(-2),t.slice(3))===0),s=c};u.prependListener("close",f),u.on("data",d),a.on("close",()=>{u.removeListener("close",f),u.removeListener("data",d)})})}var hm={debugadapter:{version:Xt,zip:async()=>(await Promise.resolve().then(()=>se(Lu()))).default},"debugadapter-tests":{version:Xt,zip:async()=>(await Promise.resolve().then(()=>se(xu()))).default}};async function Au(a,e){let t=await Sr(`https://mods.factorio.com/api/mods/${a}${e?"/full":""}`);if(!t.ok)throw new Error(t.statusText);return await t.json()}var Rr=class{constructor(e,t){this.modsPath=e;this.playerdataPath=t;this.Loaded=this.reload()}modList={mods:[]};Loaded;async reload(){let e=tt.resolve(this.modsPath,"./mod-list.json");try{this.modList=JSON.parse(await Ee.readFile(e,"utf8"))}catch{this.modList={mods:[]}}}async write(){let e=tt.resolve(this.modsPath,"./mod-list.json");return Ee.writeFile(e,JSON.stringify(this.modList,null,2),"utf8")}async getDownloadCredentials(e){let t=this.playerdataPath??tt.resolve(this.modsPath,"../player-data.json"),n=t?await Ee.readFile(t,"utf8").then(f=>JSON.parse(f)).catch(()=>{}):void 0;if(n?.["service-token"])return{username:n["service-username"],token:n["service-token"]};let i=await e(n?.["service-username"]),s=await Sr("https://auth.factorio.com/api-login",{method:"POST",body:new URLSearchParams({username:i.username,password:i.password,api_version:"4",require_game_ownership:"true"})});if(!s.ok)throw new Error(s.statusText);let u=await s.json();return n&&(n["service-username"]=u.username,n["service-token"]=u.token,await Ee.writeFile(t,JSON.stringify(n,void 0,2))),u}async findInstallSource(e,t){if(t.origin!=="portal"){let s=hm[e];if(s)return s;if(t.origin==="bundle")throw new Error(`No bundled package for ${e}`)}let n=await Au(e),i=n.releases[n.releases.length-1];return{version:i.version,zip:async()=>{let s=await this.getDownloadCredentials(t.credentialPrompt),u=await Sr(`https://mods.factorio.com/${i.download_url}?username=${s.username}&token=${s.token}`);if(!u.ok)throw new Error(u.statusText);return u.body}}}async installMod(e,t){let n=await this.findInstallSource(e,t),i=n.version,s=this.modList.mods.find(p=>p.name===e),u=s?.enabled?s.version??!0:s?.enabled;async function f(p){let _=tt.resolve(p,"info.json");try{let b=await Ee.readFile(_,"utf8");if(b){let g=JSON.parse(b);if(g.name===e&&g.version===i)return!0}}catch{}return!1}if(!t.force){if(await f(tt.resolve(this.modsPath,e)))return this.set(e,i),{using:i,from:"folder",previous:u};if(await f(tt.resolve(this.modsPath,`${e}_${i}`)))return this.set(e,i),{using:i,from:"versioned_folder",previous:u};try{return await Ee.access(tt.resolve(this.modsPath,`${e}_${i}.zip`)),this.set(e,i),{using:i,from:"existing",previous:u}}catch{}}let d=Ee.writeFile(tt.resolve(this.modsPath,`${e}_${i}.zip`),await n.zip()),c;if(!t.keepOld){let p=(await Ee.readdir(this.modsPath,"utf8")).filter(_=>_.startsWith(e)&&_.endsWith(".zip")&&_.substring(e.length,_.length-4).match(/^_[\d\.]+$/)&&_!==`${e}_${i}.zip`);p.length===1&&(await Ee.unlink(tt.resolve(this.modsPath,p[0])),c=p[0].substring(e.length+1,p[0].length-4))}return this.set(e,i),await d,{using:i,from:"installed",previous:u,replaced:c}}set(e,t){let n=!!t,i=typeof t=="string"?t:void 0,s=this.modList.mods.find(u=>u.name===e);s?(s.enabled=n,s.version=i):this.modList.mods.push({name:e,enabled:n,version:i})}disableAll(){this.modList.mods.forEach(e=>e.enabled=!1)}};var Xo=(d=>(d[d.none=0]="none",d[d.bool=1]="bool",d[d.number=2]="number",d[d.string=3]="string",d[d.list=4]="list",d[d.dictionary=5]="dictionary",d[d.signedinteger=6]="signedinteger",d[d.unsignedinteger=7]="unsignedinteger",d))(Xo||{});function Yo(a){if(a.readUInt8()!==0)return"";{let t=a.readPackedUInt_8_32();return a.readString(t)}}var Pr=class a{constructor(){}static load(e){let t=e.readUInt8();switch(e.readUInt8(),t){case 0:return{type:t};case 1:return{type:t,value:e.readUInt8()!==0};case 2:return{type:t,value:e.readDoubleLE()};case 3:return{type:t,value:Yo(e)};case 4:{let n=e.readUInt32LE(),i=[];for(let s=0;s<n;s++){Yo(e);let u=a.load(e);i.push(u)}return{type:t,value:i}}case 5:{let n=e.readUInt32LE(),i={};for(let s=0;s<n;s++){let u=Yo(e);if(!u)throw new Error("Missing key in PropertyTree Dictionary");let f=a.load(e);i[u]=f}return{type:t,value:i}}case 6:return{type:t,value:e.readBigInt64LE()};case 7:return{type:t,value:e.readBigUInt64LE()};default:throw new Error(`Invalid datatype in PropertyTree ${t}`)}}static saveString(e){if(!e)return Buffer.from([1]);let t=Buffer.from(e,"utf8"),n=Buffer.alloc(1);return t.length<255?n.writeUInt8(t.length):(n=Buffer.alloc(5),n.writeUInt8(255),n.writeUInt32LE(t.length,1)),Buffer.concat([Buffer.from([0]),n,t])}static typeTag(e){return Buffer.from([e,0])}static save(e){switch(e.type){case 3:return Buffer.concat([a.typeTag(3),a.saveString(e.value)]);case 1:return Buffer.concat([a.typeTag(1),Buffer.from([e.value?1:0])]);case 2:{let t=Buffer.alloc(8);return t.writeDoubleLE(e.value),Buffer.concat([a.typeTag(2),t])}case 6:{let t=Buffer.alloc(8);return t.writeBigInt64LE(e.value),Buffer.concat([a.typeTag(6),t])}case 7:{let t=Buffer.alloc(8);return t.writeBigUInt64LE(e.value),Buffer.concat([a.typeTag(7),t])}case 0:return a.typeTag(0);case 4:{let t=Buffer.alloc(4);return t.writeUInt32LE(e.value.length),Buffer.concat([a.typeTag(4),t,Buffer.concat(e.value.map(n=>Buffer.concat([a.saveString(""),a.save(n)])))])}case 5:{let t=[];for(let i in e.value)if(Object.prototype.hasOwnProperty.call(e.value,i)){let s=e.value[i];t.push(Buffer.concat([a.saveString(i),a.save(s)]))}let n=Buffer.alloc(4);return n.writeUInt32LE(t.length),Buffer.concat([a.typeTag(5),n,Buffer.concat(t)])}default:throw new Error(`Invalid datatype in PropertyTree ${e.type}`)}}};var Dt=class a{constructor(e,t,n,i,s){this.main=e;this.major=t;this.minor=n;this.patch=i;this.branch=s}static load(e){let t=e.readUInt16LE(0),n=e.readUInt16LE(2),i=e.readUInt16LE(4),s=e.readUInt16LE(6),u=e.readUInt8(8);return new a(t,n,i,s,u)}save(){let e=Buffer.alloc(9);return e.writeUInt16LE(this.main,0),e.writeUInt16LE(this.major,2),e.writeUInt16LE(this.minor,4),e.writeUInt16LE(this.patch,6),e.writeUInt8(this.branch,8),e}format(){return`${this.main}.${this.major}.${this.minor}-${this.patch}`}isBeyond(e,t,n,i){return this.main<e?!1:t===void 0?!0:this.major<t?!1:n===void 0?!0:this.minor<n?!1:i===void 0?!0:!(this.patch<i)}};var ri=se(require("assert")),Tu=["startup","runtime-global","runtime-per-user"],Xr=class{version;_settings;constructor(e){this.version=Dt.load(e.read(9));let t=Pr.load(e);(0,ri.default)(t.type===5);let n={startup:{},"runtime-global":{},"runtime-per-user":{}};for(let i of Tu){let s=t.value[i];(0,ri.default)(s.type===5);let u=n[i];for(let f in s.value){let d=s.value[f];(0,ri.default)(d.type===5);let c=d.value.value;switch(c.type){case 3:u[f]={type:"string",value:c.value};break;case 2:u[f]={type:"number",value:c.value};break;case 6:u[f]={type:"int",value:c.value};break;case 1:u[f]={type:"bool",value:c.value};break;case 5:let p=c.value;if("r"in p&&p.r.type===2&&"g"in p&&p.g.type===2&&"b"in p&&p.b.type===2&&"a"in p&&p.a.type===2)u[f]={type:"color",value:{r:p.r.value,g:p.g.value,b:p.b.value,a:p.a.value}};else throw new Error(`Dictionary value in ModSettings Tree does not match any known structure at ${i} ${f}`);break;default:throw new Error(`Unexpected type in ModSettings Tree: ${c.type}`)}}}this._settings=n}get settings(){return this._settings}save(){let e={type:5,value:{}};for(let t of Tu){let n=this._settings[t],i={type:5,value:{}};e.value[t]=i;for(let s in n){let u=n[s];switch(u.type){case"string":i.value[s]={type:5,value:{value:{type:3,value:u.value}}};break;case"bool":i.value[s]={type:5,value:{value:{type:1,value:u.value}}};break;case"int":i.value[s]={type:5,value:{value:{type:6,value:u.value}}};break;case"number":i.value[s]={type:5,value:{value:{type:2,value:u.value}}};break;case"color":i.value[s]={type:5,value:{value:{type:5,value:{r:{type:2,value:u.value.r},g:{type:2,value:u.value.g},b:{type:2,value:u.value.b},a:{type:2,value:u.value.a}}}}};break;default:break}}}return Buffer.concat([this.version.save(),Pr.save(e)])}set(e,t,n){n===void 0?delete this._settings[e][t]:this._settings[e][t]=n}get(e,t){return this._settings[e][t]}*list(){for(let e in this._settings)for(let t in this._settings[e]){let n=this._settings[e][t];yield{scope:e,setting:t,value:n.value}}}};var de=1e5,$t={adjust:{table:{BlueprintEntity:{parameters:[{name:"orientation",order:de++,description:"",optional:!0,type:"number"},{name:"recipe",order:de++,description:"",optional:!0,type:"string"},{name:"inventory",order:de++,description:"",optional:!0,type:{complex_type:"table",parameters:[{name:"bar",order:de++,description:"",optional:!0,type:"number"},{name:"filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"InventoryFilter"}}]}},{name:"bar",order:de++,description:"",optional:!0,type:"number"},{name:"filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"InventoryFilter"}},{name:"type",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"input"},{complex_type:"literal",value:"output"}]}},{name:"input_priority",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"left"},{complex_type:"literal",value:"right"}]}},{name:"output_priority",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"left"},{complex_type:"literal",value:"right"}]}},{name:"filter",order:de++,description:"",optional:!0,type:"string"},{name:"filter_mode",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"whitelist"},{complex_type:"literal",value:"blacklist"}]}},{name:"override_stack_size",order:de++,description:"",optional:!0,type:"number"},{name:"request_filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"LogisticFilter"}},{name:"request_from_buffers",order:de++,description:"",optional:!0,type:"boolean"},{name:"parameters",order:de++,description:"",optional:!0,type:"ProgrammableSpeakerParameters"},{name:"alert_parameters",order:de++,description:"",optional:!0,type:"ProgrammableSpeakerAlertParameters"},{name:"color",order:de++,description:"",optional:!0,type:"Color"},{name:"station",order:de++,description:"",optional:!0,type:"string"}]}},class:{LuaLazyLoadedValue:{generic_params:["T"],generic_parent:"{get:fun():T}"},LuaCustomTable:{generic_params:["K","V"],generic_parent:"{[K]:V}",no_index:!0},LuaGuiElement:{index_key:{complex_type:"union",options:["string","uint"]},split_funcs:!0}},define:{"defines.prototypes":{owntype:!0}}}};function mm(a){return["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"].includes(a)?`${a}_`:a}function Lr(a){return mm(a.replace(/[^a-zA-Z0-9]/g,"_").replace(/^([0-9])/,"_$1"))}function Qo(a){return!!a.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)}async function Ft(a,e){if(!e)return;let t=await e;t&&a.write(`---${t.replace(/\n/g,`
2926
3001
  ---`)}
2927
- `)}var Ce=class{constructor(e,t,n="_"){this.name=e;this.app_version=t;this.meta=n}members;add(e){this.members||(this.members=[]),this.members.push(e)}async write(e){if(typeof this.meta=="string"&&e.write(`---@meta ${this.meta}
3002
+ `)}var Ie=class{constructor(e,t,n="_"){this.name=e;this.app_version=t;this.meta=n}members;add(e){this.members||(this.members=[]),this.members.push(e)}async write(e){if(typeof this.meta=="string"&&e.write(`---@meta ${this.meta}
2928
3003
  `),e.write(`
2929
3004
  `),e.write(`--$Factorio ${this.app_version}
2930
- `),e.write(`--$Generator ${Yt}
3005
+ `),e.write(`--$Generator ${Xt}
2931
3006
  `),e.write(`--$Section ${this.name}
2932
3007
  `),e.write(`-- This file is automatically generated. Edits will be overwritten without warning.
2933
3008
  `),e.write(`
2934
- `),this.members)for(let t of this.members)await t.write(e)}},j=class{constructor(e,t){this.name=e;this.generic_args=t}format(){return this.generic_args?`${this.name}<${this.generic_args.map(e=>e.format()).join(", ")}>`:this.name}},rt=class{constructor(e){this.value=e}format(){switch(typeof this.value){case"string":return`"${this.value}"`;case"number":case"boolean":return this.value.toString();default:throw new Error("Invalid value")}}},rr=class{constructor(e,t){this.key=e;this.value=t}format(){return`{[${this.key.format()}]:${this.value.format()}}`}},nt=class{constructor(e){this.member=e}format(){return`(${this.member.format()})[]`}},Pr=class{constructor(e){this.members=e}format(){return`{${this.members.map((e,t)=>`[${t+1}]:${e.format()}`).join(", ")}}`}},Ot=class{constructor(e){this.members=e}format(){return this.members.map(e=>`(${e.format()})`).join("|")}},ht=class{constructor(e,t,n){this.name=e;this.type=t;this.description=n}async write(e){await Ft(e,this.description),e.write(`---@alias ${this.name} ${this.type.format()}
3009
+ `),this.members)for(let t of this.members)await t.write(e)}},U=class{constructor(e,t){this.name=e;this.generic_args=t}format(){return this.generic_args?`${this.name}<${this.generic_args.map(e=>e.format()).join(", ")}>`:this.name}},rt=class{constructor(e){this.value=e}format(){switch(typeof this.value){case"string":return`"${this.value}"`;case"number":case"boolean":return this.value.toString();default:throw new Error("Invalid value")}}},rr=class{constructor(e,t){this.key=e;this.value=t}format(){return`{[${this.key.format()}]:${this.value.format()}}`}},nt=class{constructor(e){this.member=e}format(){return`(${this.member.format()})[]`}},Er=class{constructor(e){this.members=e}format(){return`{${this.members.map((e,t)=>`[${t+1}]:${e.format()}`).join(", ")}}`}},Ot=class{constructor(e){this.members=e}format(){return this.members.map(e=>`(${e.format()})`).join("|")}},ht=class{constructor(e,t,n){this.name=e;this.type=t;this.description=n}async write(e){await Ft(e,this.description),e.write(`---@alias ${this.name} ${this.type.format()}
2935
3010
 
2936
3011
  `)}},ni=class{constructor(e,t,n,i){this.name=e;this.type_name=t;this.fields=n;this.description=i}async write(e){await Ft(e,this.description),e.write(`---@enum ${this.type_name}
2937
3012
  `),e.write(`${this.name}={
2938
3013
  `);for(let t of this.fields)await t.write(e);e.write(`}
2939
3014
  `)}},ii=class{constructor(e,t,n,i){this.name=e;this.typename=t;this.description=n;this.value=i}async write(e){await Ft(e,this.description);let t=Qo(this.name)?this.name:`['${this.name}']`;e.write(`${t}=`),this.value?e.write(`${this.value.format()},
2940
3015
  `):e.write(`#{} --[[@as ${this.typename.format()} ]],
2941
- `)}},pe=class{constructor(e){this.name=e}description;parents;generic_args;global_name;operators;call_op;fields;functions;add(e){e instanceof Qr?(this.operators||(this.operators=[]),this.operators.push(e)):e instanceof mt?(this.call_op||(this.call_op=[]),this.call_op.push(e)):e instanceof ce?(this.fields||(this.fields=[]),this.fields.push(e)):e instanceof je&&(this.functions||(this.functions=[]),this.functions.push(e))}async write(e){if(e.write(`do
3016
+ `)}},pe=class{constructor(e){this.name=e}description;parents;generic_args;global_name;operators;call_op;fields;functions;add(e){e instanceof Qr?(this.operators||(this.operators=[]),this.operators.push(e)):e instanceof mt?(this.call_op||(this.call_op=[]),this.call_op.push(e)):e instanceof ce?(this.fields||(this.fields=[]),this.fields.push(e)):e instanceof Ue&&(this.functions||(this.functions=[]),this.functions.push(e))}async write(e){if(e.write(`do
2942
3017
  `),await Ft(e,this.description),e.write(`---@class ${this.name}`),this.generic_args&&this.generic_args.length>0&&e.write(`<${this.generic_args.join(",")}>`),this.parents&&this.parents.length>0&&e.write(`:${this.parents.map(t=>t.format()).join(", ")}`),e.write(`
2943
3018
  `),this.fields)for(let t of this.fields)await t.write(e);if(this.call_op)for(let t of this.call_op)await t.write(e);if(this.operators)for(let t of this.operators)await t.write(e);if(e.write(`${this.global_name??"local "+Lr(this.name)}={
2944
3019
  `),this.functions)for(let t of this.functions)await t.write(e);e.write(`}
@@ -2947,11 +3022,11 @@ end
2947
3022
  `)}format(){if(this.description||this.parents||this.generic_args||this.global_name||this.functions||this.call_op)throw new Error("Can't inline table with unsupported features");return this.fields?`{${this.fields.map((e,t)=>typeof e.name=="string"?`${e.name}:${e.type.format()}`:`[${e.name.format()}]:${e.type.format()}`).join(", ")}}`:"{}"}},Qr=class{constructor(e,t,n){this.name=e;this.type=t;this.input_type=n}description;async write(e){await Ft(e,this.description),e.write(`---@operator ${this.name}`),this.input_type&&e.write(`(${this.input_type.format()})`),e.write(`:${this.type.format()}
2948
3023
  `)}},ce=class{constructor(e,t,n,i){this.name=e;this.type=t;this.description=n;this.optional=i}async write(e){await Ft(e,this.description),e.write("---@field "),typeof this.name=="string"?e.write(this.name):e.write(`[${this.name.format()}]`),this.optional&&e.write("?"),e.write(` ${this.type.format()}
2949
3024
  `)}},mt=class{constructor(e,t,n){this.description=e;this.params=t;this.returns=n}async write(e){await Ft(e,this.description);let t="";this.params&&(t=this.params.map(i=>`${i.name}${i.optional?"?":""}:${i.type.format()}`).join(", "));let n="";this.returns&&(n=`:${this.returns.map(i=>i.type.format()).join(", ")}`),e.write(`---@overload fun(${t})${n}
2950
- `)}},je=class{constructor(e,t,n,i){this.name=e;this.params=t;this.returns=n;this.description=i}overloads;nodiscard;add(e){this.overloads||(this.overloads=[]),this.overloads.push(e)}async write(e){if(await Ft(e,this.description),this.params)for(let t of this.params)await t.write(e);if(this.returns)for(let t of this.returns)await t.write(e);if(this.nodiscard&&e.write(`---@nodiscard
3025
+ `)}},Ue=class{constructor(e,t,n,i){this.name=e;this.params=t;this.returns=n;this.description=i}overloads;nodiscard;add(e){this.overloads||(this.overloads=[]),this.overloads.push(e)}async write(e){if(await Ft(e,this.description),this.params)for(let t of this.params)await t.write(e);if(this.returns)for(let t of this.returns)await t.write(e);if(this.nodiscard&&e.write(`---@nodiscard
2951
3026
  `),this.overloads)for(let t of this.overloads)await t.write(e);e.write(`${this.name} = function(`),this.params&&e.write(this.params.map(t=>t.name).join(", ")),e.write(`) end;
2952
3027
  `)}format(){if((!this.params||this.params.length===0)&&!this.returns)return"function";let e="";this.params&&(e=this.params.map(n=>`${n.name}${n.optional?"?":""}:${n.type.format()}`).join(", "));let t="";return this.returns&&(t=`:${this.returns.map(n=>n.type.format()).join(", ")}`),`fun(${e})${t}`}},le=class{constructor(e,t,n,i){this.name=e;this.type=t;this.description=n;this.optional=i}async write(e){e.write(`---@param ${this.name}${this.optional?"?":""} ${this.type.format()} ${await this.description??""}
2953
3028
  `)}},oi=class{constructor(e,t,n,i){this.type=e;this.name=t;this.description=n;this.optional=i}async write(e){e.write(`---@return ${this.type.format()}${this.optional?"?":""} ${this.name??""}`);let t=await this.description;t&&e.write(` #${t}`),e.write(`
2954
- `)}};function Jo(a,e){return a.order-e.order}var Zo=class{docs;classes;events;concepts;globals;defines;constructor(e,t){if(this.docs=JSON.parse(e),this.docs.application!=="factorio")throw`Unknown application: ${this.docs.application}`;if(!(this.docs.api_version===4||this.docs.api_version===5||this.docs.api_version===6))throw`Unsupported JSON Version ${this.docs.api_version}`;if(this.docs.stage!=="runtime")throw`Wrong stage: ${this.docs.stage}`;this.classes=new Map(this.docs.classes.map(i=>[i.name,i])),this.events=new Map(this.docs.events.map(i=>[i.name,i])),this.concepts=new Map(this.docs.concepts.map(i=>[i.name,i])),this.globals=new Map(this.docs.global_objects.map(i=>[i.type,i]));let n=(i,s)=>{let u=`${s}${i.name}`;this.defines.add(u);let f=`${u}.`;i.values&&i.values.forEach(d=>{this.defines.add(`${f}${d.name}`)}),i.subkeys&&i.subkeys.forEach(d=>n(d,f))};this.defines=new Set,this.defines.add("defines"),this.docs.defines.forEach(i=>n(i,"defines."))}isVersion(e){return this.api_version===e}get api_version(){return this.docs.api_version}get stage(){return this.docs.stage}get application(){return this.docs.application}get application_version(){return this.docs.application_version}resolve_link(e,t){if(t=t?`#${t}`:"",["classes","events","concepts","defines"].includes(e))return`/${e}.html${t}`;if(e==="builtin_types")return`/builtin-types.html${t}`;if(["libraries","global","migrations","data-lifecycle"].includes(e))return`/auxiliary/${e}.html${t}`;if(this.concepts.has(e))return`/concepts.html#${e}`;if(this.classes.has(e))return`/classes/${e}.html${t}`;if(this.events.has(e))return`/events.html#${e}`;if(this.api_version===4&&["string","float"].includes(e))return`/builtin-types.html#${e}`;if(this.defines.has(e))return`/defines.html#${e}`;let n=e.match(/defines\.prototypes\[\'(.+)\'\]/);if(n&&this.defines.has(`defines.prototypes.${n[1]}`))return`/defines.html#defines.prototypes.${n[1]}`;console.warn(`Invalid Link: runtime:${e}${t}`)}with_base_classes(e,t){let n=t(e),i=e.base_classes?.map(s=>this.classes.get(s)).filter(s=>!!s).map(t)??[];return[n,...i].flat()}generate_debuginfo(){let e={alwaysValid:{},expandKeys:{}};return this.classes.forEach(t=>{if(["LuaCustomTable"].includes(t.name))return;let n={},i=!1;e.expandKeys[t.name]=n;for(let s of this.with_base_classes(t,u=>u.attributes))if(s.name==="valid")i=!0;else if(s.name!=="object_name"){if(s.read??s.read_type){n[s.name]={},(s.write??s.write_type)||(n[s.name].readOnly=!0);let u=s.type??s.read_type;typeof u=="string"&&u.startsWith("defines.")&&(n[s.name].enumFrom=u)}}i||(e.alwaysValid[t.name]=!0);for(let s of t.operators)switch(s.name){case"index":n["[]"]={readOnly:!(s.write??s.write_type),thisAsTable:!0,iterMode:"count"};break;case"length":default:break}for(let s of this.with_base_classes(t,u=>u.methods))["help","generate_event_name"].includes(s.name)||s.parameters.length>0||s.return_values.length!==0&&(s.raises||(n[s.name]={readOnly:!0,fetchable:!0}))}),e}async generate_LuaLS_docs(e){return Promise.all([...await this.generate_LuaLS_classes(e),this.generate_LuaLS_concepts(e),this.generate_LuaLS_defines(e),this.generate_LuaLS_events(e),this.generate_LuaLS_LuaObjectNames(),this.generate_LuaLS_global_functions(e)])}async generate_LuaLS_classes(e){let t=[];for(let n of this.docs.classes)t.push(await this.generate_LuaLS_class(n,e));return t}async generate_LuaLS_class(e,t){let n=new Ce(`runtime-api/${e.name}`,this.docs.application_version),i=new pe(e.name),s=this.globals.get(e.name);s&&(i.global_name=s.name),i.description=t(this.collect_description(e,{scope:"runtime",member:e.name})),i.parents=e.parent?[new j(e.parent)]:e.base_classes?e.base_classes.map(f=>new j(f)):[new j("LuaObject")],i.generic_args=$t.adjust.class[e.name]?.generic_params,$t.adjust.class[e.name]?.generic_parent&&i.parents.push(await this.LuaLS_type($t.adjust.class[e.name]?.generic_parent));for(let f of e.attributes)i.add(new ce(f.name,await this.LuaLS_type(f.type??f.write_type??f.read_type,{file:n,table_class_name:`${e.name}.${f.name}`,format_description:t}),t(this.collect_description(f,{scope:"runtime",member:e.name,part:f.name})),f.optional));for(let f of e.operators)switch(f.name){case"call":{i.add(new mt(t(this.collect_description(f,{scope:"runtime",member:e.name,part:"call_operator"})),await this.LuaLS_params(f.parameters,t),await this.LuaLS_returns(f.return_values,t)));break}case"length":{let d=new Qr("len",await this.LuaLS_type(f.type??f.read_type));d.description=t(this.collect_description(f,{scope:"runtime",member:e.name,part:"length_operator"})),i.add(d);break}case"index":{if($t.adjust.class[e.name]?.no_index)break;i.add(new ce(await this.LuaLS_type($t.adjust.class[e.name]?.index_key??"uint"),await this.LuaLS_type(f.type??f.write_type??f.read_type),t(this.collect_description(f,{scope:"runtime",member:e.name,part:"index_operator"}))));break}default:throw`Unkown operator: ${f.name}`}let u=i;$t.adjust.class[e.name]?.split_funcs&&(u=new pe(`${e.name}_funcs`),n.add(u),i.parents.push(new j(`${e.name}_funcs`)));for(let f of e.methods)u.add(await this.LuaLS_function(f,n,t,e.name));return n.add(i),n}async generate_LuaLS_concepts(e){let t=new Ce("runtime-api/concepts",this.docs.application_version);for(let n of this.docs.concepts){let i=e(this.collect_description(n,{scope:"runtime",member:n.name}));if(typeof n.type=="string")t.add(new ht(n.name,await this.LuaLS_type(n.type),i));else switch(n.type.complex_type){case"dictionary":let s=n.type.key,u=n.type.value;if(typeof u=="object"&&u.complex_type==="literal"&&u.value===!0&&typeof s=="object"&&s.complex_type==="union"){let f=new pe(n.name);f.description=i;for(let d of s.options)f.add(new ce(await this.LuaLS_type(d),await this.LuaLS_type(u)));t.add(f);break}case"union":case"array":case"table":case"tuple":case"LuaStruct":{let f=await this.LuaLS_type(n.type,{file:t,table_class_name:n.name,format_description:e});f instanceof j&&f.name===n.name||t.add(new ht(n.name,f,i));break}case"builtin":break;default:break}}return t}async generate_LuaLS_defines(e){let t=new Ce("runtime-api/defines",this.docs.application_version),n=new pe("defines");n.global_name="defines",n.description=e(void 0,{scope:"runtime",member:"defines"}),t.add(n);let i=(u,f)=>Qo(f)?`${u}.${f}`:`${u}['${f}']`,s=async(u,f,d,c)=>{let p=i(f,u.name),_=`${d}.${Lr(u.name)}`,b=e(this.collect_description(u,{scope:"runtime",member:p}));if(p==="defines.prototypes"&&(c=new rt(0)),u.values)t.add(new ni(p,_,u.values.map(g=>new ii(g.name,new j(`${_}.${Lr(g.name)}`),g.description,c)),b));else{let g=new pe(p);if(g.global_name=p,g.description=b,$t.adjust.define[p]?.owntype&&(g.parents=[new j(`__${p}`)]),t.add(g),u.subkeys)for(let S of u.subkeys)await s(S,p,_,c)}};for(let u of this.docs.defines)await s(u,"defines","defines");return t}async generate_LuaLS_events(e){let t=new Ce("runtime-api/events",this.docs.application_version),n=new pe("event_handler.events");for(let[s,u]of this.events){let f=new je("handler",[new le("event",new j(`EventData.${u.name}`))]);n.add(new ce(new j(u.name==="CustomInputEvent"?"string":`defines.events.${u.name}`),f));let d=new pe(`EventData.${u.name}`);d.parents=[new j("EventData")],d.description=e(this.collect_description(u,{scope:"runtime",member:u.name}));for(let c of u.data)d.add(new ce(c.name,await this.LuaLS_type(c.type),e(this.collect_description(c,{scope:"runtime",member:u.name,part:c.name})),c.optional));t.add(d)}let i=new je("handler",[new le("event",new j("EventData"))]);return n.add(new ce(new j("uint"),i)),t.add(n),t}async generate_LuaLS_LuaObjectNames(){let e=new Ce("runtime-api/LuaObjectNames",this.docs.application_version);return e.add(new ht("LuaObject.object_name",new Ot(this.docs.classes.filter(t=>!t.abstract).map(t=>new rt(t.name))))),e}async generate_LuaLS_global_functions(e){let t=new Ce("runtime-api/global_functions",this.docs.application_version);for(let n of this.docs.global_functions)t.add(await this.LuaLS_function(n,t,e));return t}async LuaLS_params(e,t){return Promise.all(e.sort(Jo).map(async n=>new le(Lr(n.name),await this.LuaLS_type(n.type),t(this.collect_description(n)),n.optional)))}async LuaLS_returns(e,t){return Promise.all(e.sort(Jo).map(async n=>new oi(await this.LuaLS_type(n.type),void 0,t(this.collect_description(n)),n.optional)))}async LuaLS_function(e,t,n,i){let s=e.takes_table??e.format?.takes_table?[new le("param",await this.LuaLS_table_type(e,t,`${i??""}${i?".":""}${e.name}_param`,n),void 0,e.table_is_optional??e.format?.table_optional)]:await this.LuaLS_params(e.parameters,n);e.variadic_type&&s.push(new le("...",await this.LuaLS_type(e.variadic_type),n(e.variadic_description))),e.variadic_parameter&&s.push(new le("...",await this.LuaLS_type(e.variadic_parameter.type),n(e.variadic_parameter.description)));let u=new je(e.name,s,await this.LuaLS_returns(e.return_values,n),n(this.collect_description(e),{scope:"runtime",member:i??"libraries",part:i?e.name:"new-functions"}));if(i==="LuaBootstrap"&&e.name==="on_event"){s[1].type.members[0].params[0].name="event";for(let[f,d]of this.events){let c=new j(`defines.events.${d.name}`),p=new j(`EventData.${d.name}`);d.name==="CustomInputEvent"&&(c=new j("string"));let _=[new le("event",c),new le("handler",new je("handler",[new le("event",p)]))];if(this.api_version===4){let b=d.description.match(/(Lua\w+Filter)\)\.$/);b&&_.push(new le("filters",new nt(new j(b[1])),void 0,!0))}else this.api_version>=5&&d.filter&&_.push(new le("filters",new nt(new j(d.filter)),void 0,!0));u.add(new mt(void 0,_))}u.add(new mt(void 0,[new le("event",new j("uint")),new le("handler",new je("handler",[new le("event",new j("EventData"))]))]))}return u}async LuaLS_table_type(e,t,n,i,s){let u=new pe(n);u.parents=s,t.add(u);let f=1;for(let d of e.parameters.sort(Jo)){let c="complex_type"in e&&e.complex_type==="tuple";u.add(new ce(c?new rt(f++):d.name,await this.LuaLS_type(d.type),i(this.collect_description(d)),d.optional))}if(e.variant_parameter_groups){let d=[],c=new ht(u.name,new Ot(d));t.add(c),u.name+=".base";for(let p of e.variant_parameter_groups){let _=await this.LuaLS_table_type(p,t,`${n}.${Lr(p.name)}`,i,[new j(u.name)]);d.push(_)}return d.push(new j(u.name)),new j(c.name)}return new j(u.name)}async LuaLS_type(e,t){if(!e)return new j("any");if(typeof e=="string")return new j(e);let n=i=>t&&{file:t.file,table_class_name:`${t.table_class_name}.${i}`,format_description:t.format_description};switch(e.complex_type){case"array":return new nt(await this.LuaLS_type(e.value,n("member")));case"dictionary":return new rr(await this.LuaLS_type(e.key,n("key")),await this.LuaLS_type(e.value,n("value")));case"union":return new Ot(await Promise.all(e.options.map((i,s)=>this.LuaLS_type(i,n(`${s}`)))));case"LuaLazyLoadedValue":return new j("LuaLazyLoadedValue",[await this.LuaLS_type(e.value,n("value"))]);case"LuaCustomTable":return new j("LuaCustomTable",await Promise.all([this.LuaLS_type(e.key,n("key")),this.LuaLS_type(e.value,n("value"))]));case"literal":return new rt(e.value);case"function":return new je(void 0,await Promise.all(e.parameters.map(async(i,s,u)=>new le(`p${s+1}`,await this.LuaLS_type(i,n(`param${u.length>1?s:""}`))))));case"type":return this.LuaLS_type(e.value,t);case"tuple":if(this.isVersion(5)||this.isVersion(6))return new Pr(await Promise.all(e.values.map((i,s)=>this.LuaLS_type(i,n(`${s}`)))));case"table":if(!t)throw new Error(`${e.complex_type} without parent`);return this.LuaLS_table_type(e,t.file,t.table_class_name,t.format_description);case"LuaStruct":{if(!t)throw new Error(`${e.complex_type} without parent`);let i=new pe(t.table_class_name);for(let s of e.attributes)i.add(new ce(s.name,await this.LuaLS_type(s.type??s.write_type??s.read_type,{file:t.file,table_class_name:`${t.table_class_name}.${s.name}`,format_description:t.format_description}),t.format_description(this.collect_description(s)),s.optional));return t.file.add(i),new j(t.table_class_name)}}throw new Error("Invalid Type")}collect_description(e,t,n){return n||(n=e.description),"read"in e&&(n=`[${e.read?"R":""}${e.write?"W":""}] ${n??""}`),[n,e.lists?.join(`
3029
+ `)}};function Jo(a,e){return a.order-e.order}var Zo=class{docs;classes;events;concepts;globals;defines;constructor(e,t){if(this.docs=JSON.parse(e),this.docs.application!=="factorio")throw`Unknown application: ${this.docs.application}`;if(!(this.docs.api_version===4||this.docs.api_version===5||this.docs.api_version===6))throw`Unsupported JSON Version ${this.docs.api_version}`;if(this.docs.stage!=="runtime")throw`Wrong stage: ${this.docs.stage}`;this.classes=new Map(this.docs.classes.map(i=>[i.name,i])),this.events=new Map(this.docs.events.map(i=>[i.name,i])),this.concepts=new Map(this.docs.concepts.map(i=>[i.name,i])),this.globals=new Map(this.docs.global_objects.map(i=>[i.type,i]));let n=(i,s)=>{let u=`${s}${i.name}`;this.defines.add(u);let f=`${u}.`;i.values&&i.values.forEach(d=>{this.defines.add(`${f}${d.name}`)}),i.subkeys&&i.subkeys.forEach(d=>n(d,f))};this.defines=new Set,this.defines.add("defines"),this.docs.defines.forEach(i=>n(i,"defines."))}isVersion(e){return this.api_version===e}get api_version(){return this.docs.api_version}get stage(){return this.docs.stage}get application(){return this.docs.application}get application_version(){return this.docs.application_version}resolve_link(e,t){if(t=t?`#${t}`:"",["classes","events","concepts","defines"].includes(e))return`/${e}.html${t}`;if(e==="builtin_types")return`/builtin-types.html${t}`;if(["libraries","global","storage","migrations","data-lifecycle"].includes(e))return`/auxiliary/${e}.html${t}`;if(this.concepts.has(e))return`/concepts.html#${e}`;if(this.classes.has(e))return`/classes/${e}.html${t}`;if(this.events.has(e))return`/events.html#${e}`;if(this.api_version===4&&["string","float"].includes(e))return`/builtin-types.html#${e}`;if(this.defines.has(e))return`/defines.html#${e}`;let n=e.match(/defines\.prototypes\[\'(.+)\'\]/);if(n&&this.defines.has(`defines.prototypes.${n[1]}`))return`/defines.html#defines.prototypes.${n[1]}`;console.warn(`Invalid Link: runtime:${e}${t}`)}with_base_classes(e,t){let n=[];return n.push(...t(e)),e.parent&&n.push(...t(this.classes.get(e.parent))),e.base_classes&&n.push(...e.base_classes.map(i=>this.classes.get(i)).filter(i=>!!i).flatMap(t)),n}generate_debuginfo(){let e={alwaysValid:{},expandKeys:{}};return this.classes.forEach(t=>{if(["LuaCustomTable"].includes(t.name))return;let n={},i=!1;e.expandKeys[t.name]=n;for(let s of this.with_base_classes(t,u=>u.attributes))if(s.name==="valid")i=!0;else if(s.name!=="object_name"){if(s.read??s.read_type){n[s.name]={},(s.write??s.write_type)||(n[s.name].readOnly=!0);let u=s.type??s.read_type;typeof u=="string"&&u.startsWith("defines.")&&(n[s.name].enumFrom=u)}}i||(e.alwaysValid[t.name]=!0);for(let s of t.operators)switch(s.name){case"index":n["[]"]={readOnly:!(s.write??s.write_type),thisAsTable:!0,iterMode:"count"};break;case"length":default:break}for(let s of this.with_base_classes(t,u=>u.methods))["help","generate_event_name"].includes(s.name)||s.parameters.length>0||s.return_values.length!==0&&(s.raises||(n[s.name]={readOnly:!0,fetchable:!0}))}),e}async generate_LuaLS_docs(e){return Promise.all([...await this.generate_LuaLS_classes(e),this.generate_LuaLS_concepts(e),this.generate_LuaLS_defines(e),this.generate_LuaLS_events(e),this.generate_LuaLS_LuaObjectNames(),this.generate_LuaLS_global_functions(e)])}async generate_LuaLS_classes(e){let t=[];for(let n of this.docs.classes)t.push(await this.generate_LuaLS_class(n,e));return t}async generate_LuaLS_class(e,t){let n=new Ie(`runtime-api/${e.name}`,this.docs.application_version),i=new pe(e.name),s=this.globals.get(e.name);s&&(i.global_name=s.name),i.description=t(this.collect_description(e,{scope:"runtime",member:e.name})),i.parents=e.parent?[new U(e.parent)]:e.base_classes?e.base_classes.map(f=>new U(f)):[new U("LuaObject")],i.generic_args=$t.adjust.class[e.name]?.generic_params,$t.adjust.class[e.name]?.generic_parent&&i.parents.push(await this.LuaLS_type($t.adjust.class[e.name]?.generic_parent));for(let f of e.attributes)i.add(new ce(f.name,await this.LuaLS_type(f.type??f.write_type??f.read_type,{file:n,table_class_name:`${e.name}.${f.name}`,format_description:t}),t(this.collect_description(f,{scope:"runtime",member:e.name,part:f.name})),f.optional));for(let f of e.operators)switch(f.name){case"call":{i.add(new mt(t(this.collect_description(f,{scope:"runtime",member:e.name,part:"call_operator"})),await this.LuaLS_params(f.parameters,t),await this.LuaLS_returns(f.return_values,t)));break}case"length":{let d=new Qr("len",await this.LuaLS_type(f.type??f.read_type));d.description=t(this.collect_description(f,{scope:"runtime",member:e.name,part:"length_operator"})),i.add(d);break}case"index":{if($t.adjust.class[e.name]?.no_index)break;i.add(new ce(await this.LuaLS_type($t.adjust.class[e.name]?.index_key??"uint"),await this.LuaLS_type(f.type??f.write_type??f.read_type),t(this.collect_description(f,{scope:"runtime",member:e.name,part:"index_operator"}))));break}default:throw`Unkown operator: ${f.name}`}let u=i;$t.adjust.class[e.name]?.split_funcs&&(u=new pe(`${e.name}_funcs`),n.add(u),i.parents.push(new U(`${e.name}_funcs`)));for(let f of e.methods)u.add(await this.LuaLS_function(f,n,t,e.name));return n.add(i),n}async generate_LuaLS_concepts(e){let t=new Ie("runtime-api/concepts",this.docs.application_version);for(let n of this.docs.concepts){let i=e(this.collect_description(n,{scope:"runtime",member:n.name}));if(typeof n.type=="string")t.add(new ht(n.name,await this.LuaLS_type(n.type),i));else switch(n.type.complex_type){case"dictionary":let s=n.type.key,u=n.type.value;if(typeof u=="object"&&u.complex_type==="literal"&&u.value===!0&&typeof s=="object"&&s.complex_type==="union"){let f=new pe(n.name);f.description=i;for(let d of s.options)f.add(new ce(await this.LuaLS_type(d),await this.LuaLS_type(u)));t.add(f);break}case"union":case"array":case"table":case"tuple":case"LuaStruct":{let f=await this.LuaLS_type(n.type,{file:t,table_class_name:n.name,format_description:e});f instanceof U&&f.name===n.name||t.add(new ht(n.name,f,i));break}case"builtin":break;default:break}}return t}async generate_LuaLS_defines(e){let t=new Ie("runtime-api/defines",this.docs.application_version),n=new pe("defines");n.global_name="defines",n.description=e(void 0,{scope:"runtime",member:"defines"}),t.add(n);let i=(u,f)=>Qo(f)?`${u}.${f}`:`${u}['${f}']`,s=async(u,f,d,c)=>{let p=i(f,u.name),_=`${d}.${Lr(u.name)}`,b=e(this.collect_description(u,{scope:"runtime",member:p}));if(p==="defines.prototypes"&&(c=new rt(0)),u.values)t.add(new ni(p,_,u.values.map(g=>new ii(g.name,new U(`${_}.${Lr(g.name)}`),g.description,c)),b));else{let g=new pe(p);if(g.global_name=p,g.description=b,$t.adjust.define[p]?.owntype&&(g.parents=[new U(`__${p}`)]),t.add(g),u.subkeys)for(let S of u.subkeys)await s(S,p,_,c)}};for(let u of this.docs.defines)await s(u,"defines","defines");return t}async generate_LuaLS_events(e){let t=new Ie("runtime-api/events",this.docs.application_version),n=new pe("event_handler.events");for(let[s,u]of this.events){let f=new Ue("handler",[new le("event",new U(`EventData.${u.name}`))]);n.add(new ce(new U(u.name==="CustomInputEvent"?"string":`defines.events.${u.name}`),f));let d=new pe(`EventData.${u.name}`);d.parents=[new U("EventData")],d.description=e(this.collect_description(u,{scope:"runtime",member:u.name}));for(let c of u.data)d.add(new ce(c.name,await this.LuaLS_type(c.type),e(this.collect_description(c,{scope:"runtime",member:u.name,part:c.name})),c.optional));t.add(d)}let i=new Ue("handler",[new le("event",new U("EventData"))]);return n.add(new ce(new U("uint"),i)),t.add(n),t}async generate_LuaLS_LuaObjectNames(){let e=new Ie("runtime-api/LuaObjectNames",this.docs.application_version);return e.add(new ht("LuaObject.object_name",new Ot(this.docs.classes.filter(t=>!t.abstract).map(t=>new rt(t.name))))),e}async generate_LuaLS_global_functions(e){let t=new Ie("runtime-api/global_functions",this.docs.application_version);for(let n of this.docs.global_functions)t.add(await this.LuaLS_function(n,t,e));return t}async LuaLS_params(e,t){return Promise.all(e.sort(Jo).map(async n=>new le(Lr(n.name),await this.LuaLS_type(n.type),t(this.collect_description(n)),n.optional)))}async LuaLS_returns(e,t){return Promise.all(e.sort(Jo).map(async n=>new oi(await this.LuaLS_type(n.type),void 0,t(this.collect_description(n)),n.optional)))}async LuaLS_function(e,t,n,i){let s=e.takes_table??e.format?.takes_table?[new le("param",await this.LuaLS_table_type(e,t,`${i??""}${i?".":""}${e.name}_param`,n),void 0,e.table_is_optional??e.format?.table_optional)]:await this.LuaLS_params(e.parameters,n);e.variadic_type&&s.push(new le("...",await this.LuaLS_type(e.variadic_type),n(e.variadic_description))),e.variadic_parameter&&s.push(new le("...",await this.LuaLS_type(e.variadic_parameter.type),n(e.variadic_parameter.description)));let u=new Ue(e.name,s,await this.LuaLS_returns(e.return_values,n),n(this.collect_description(e),{scope:"runtime",member:i??"libraries",part:i?e.name:"new-functions"}));if(i==="LuaBootstrap"&&e.name==="on_event"){s[1].type.members[0].params[0].name="event";for(let[f,d]of this.events){let c=new U(`defines.events.${d.name}`),p=new U(`EventData.${d.name}`);d.name==="CustomInputEvent"&&(c=new U("string"));let _=[new le("event",c),new le("handler",new Ue("handler",[new le("event",p)]))];if(this.api_version===4){let b=d.description.match(/(Lua\w+Filter)\)\.$/);b&&_.push(new le("filters",new nt(new U(b[1])),void 0,!0))}else this.api_version>=5&&d.filter&&_.push(new le("filters",new nt(new U(d.filter)),void 0,!0));u.add(new mt(void 0,_))}u.add(new mt(void 0,[new le("event",new U("uint")),new le("handler",new Ue("handler",[new le("event",new U("EventData"))]))]))}return u}async LuaLS_table_type(e,t,n,i,s){let u=new pe(n);u.parents=s,t.add(u);let f=1;for(let d of e.parameters.sort(Jo)){let c="complex_type"in e&&e.complex_type==="tuple";u.add(new ce(c?new rt(f++):d.name,await this.LuaLS_type(d.type),i(this.collect_description(d)),d.optional))}if(e.variant_parameter_groups){let d=[],c=new ht(u.name,new Ot(d));t.add(c),u.name+=".base";for(let p of e.variant_parameter_groups){let _=await this.LuaLS_table_type(p,t,`${n}.${Lr(p.name)}`,i,[new U(u.name)]);d.push(_)}return d.push(new U(u.name)),new U(c.name)}return new U(u.name)}async LuaLS_type(e,t){if(!e)return new U("any");if(typeof e=="string")return new U(e);let n=i=>t&&{file:t.file,table_class_name:`${t.table_class_name}.${i}`,format_description:t.format_description};switch(e.complex_type){case"array":return new nt(await this.LuaLS_type(e.value,n("member")));case"dictionary":return new rr(await this.LuaLS_type(e.key,n("key")),await this.LuaLS_type(e.value,n("value")));case"union":return new Ot(await Promise.all(e.options.map((i,s)=>this.LuaLS_type(i,n(`${s}`)))));case"LuaLazyLoadedValue":return new U("LuaLazyLoadedValue",[await this.LuaLS_type(e.value,n("value"))]);case"LuaCustomTable":return new U("LuaCustomTable",await Promise.all([this.LuaLS_type(e.key,n("key")),this.LuaLS_type(e.value,n("value"))]));case"literal":return new rt(e.value);case"function":return new Ue(void 0,await Promise.all(e.parameters.map(async(i,s,u)=>new le(`p${s+1}`,await this.LuaLS_type(i,n(`param${u.length>1?s:""}`))))));case"type":return this.LuaLS_type(e.value,t);case"tuple":if(this.isVersion(5)||this.isVersion(6))return new Er(await Promise.all(e.values.map((i,s)=>this.LuaLS_type(i,n(`${s}`)))));case"table":if(!t)throw new Error(`${e.complex_type} without parent`);return this.LuaLS_table_type(e,t.file,t.table_class_name,t.format_description);case"LuaStruct":{if(!t)throw new Error(`${e.complex_type} without parent`);let i=new pe(t.table_class_name);for(let s of e.attributes)i.add(new ce(s.name,await this.LuaLS_type(s.type??s.write_type??s.read_type,{file:t.file,table_class_name:`${t.table_class_name}.${s.name}`,format_description:t.format_description}),t.format_description(this.collect_description(s)),s.optional));return t.file.add(i),new U(t.table_class_name)}}throw new Error("Invalid Type")}collect_description(e,t,n){return n||(n=e.description),"read"in e&&(n=`[${e.read?"R":""}${e.write?"W":""}] ${n??""}`),[n,e.lists?.join(`
2955
3030
 
2956
3031
  `),e.notes?.map(i=>`**Note:** ${i}`)?.join(`
2957
3032
 
@@ -2964,9 +3039,9 @@ ${i}`)?.join(`
2964
3039
 
2965
3040
  `),e.subclasses&&`_Can only be used if this is ${e.subclasses.length===1?e.subclasses[0]:`${e.subclasses.slice(0,-1).join(", ")} or ${e.subclasses[e.subclasses.length-1]}`}_`].filter(i=>!!i).join(`
2966
3041
 
2967
- `)}};var ea=class{docs;concepts;simple_structs;prototypes;type_prefix="data.";constructor(e,t){if(this.docs=JSON.parse(e),this.docs.application!=="factorio")throw`Unknown application: ${this.docs.application}`;if(!(this.docs.api_version===4||this.docs.api_version===5||this.docs.api_version===6))throw`Unsupported JSON Version ${this.docs.api_version}`;if(this.docs.stage!=="prototype")throw`Wrong stage: ${this.docs.stage}`;this.concepts=new Map(this.docs.types.map(n=>[n.name,n])),this.simple_structs=new Set;for(let[n,i]of this.concepts)typeof i.type=="object"&&i.type.complex_type==="struct"&&this.simple_structs.add(n);this.prototypes=new Map(this.docs.prototypes.map(n=>[n.name,n]))}get api_version(){return this.docs.api_version}get stage(){return this.docs.stage}get application(){return this.docs.application}get application_version(){return this.docs.application_version}resolve_link(e,t){if(t=t?`#${t}`:"",["prototypes","types"].includes(e))return`/${e}.html${t}`;if(this.concepts.has(e))return`/types/${e}.html${t}`;if(this.prototypes.has(e))return`/prototypes/${e}.html${t}`;console.warn(`Invalid Link: prototype:${e}${t}`)}generate_LuaLS_docs(e){return[this.generate_LuaLS_concepts(e),this.generate_LuaLS_prototypes(e),this.generate_LuaLS_data(e)]}async generate_LuaLS_concepts(e){let t=new Ce("prototype-api/concepts",this.application_version);for(let[n,i]of this.concepts){if(i.type==="builtin")continue;let s=this.simple_structs.has(i.name),u=s?"":".struct";if(i.properties){let f=new pe(this.type_prefix+i.name+u);f.description=await e(i.description,{scope:"prototype",member:i.name}),i.parent&&(f.parents=[new j(this.type_prefix+i.parent+u)]);for(let d of i.properties)f.add(new ce(d.name,this.lua_proto_type(d.type),await e(d.description,{scope:"prototype",member:i.name,part:d.name}),d.optional));t.add(f)}if(!s){let f=i.type;i.name==="AnyPrototype"&&typeof f=="object"&&f.complex_type==="union"&&(f={complex_type:"union",options:f.options.filter(c=>typeof c=="object"?!(c.complex_type==="type"&&c.value==="MapGenPresets"):c!=="MapGenPresets")}),t.add(new ht(this.type_prefix+i.name,this.lua_proto_type(f,i),i.description))}}return t}generate_LuaLS_data(e){let t=new Ce("prototype-api/data",this.application_version),n=new pe("data");n.add(new ce("raw",new j("data.raw"))),n.add(new ce("is_demo",new j("boolean")));let i=this.concepts.has("AnyPrototype"),s=i?"data.AnyPrototype":"data.PrototypeBase",u=new je("extend",[new le("self",new j("data")),new le("otherdata",new nt(new j(s)))]);i&&u.add(new mt(void 0,[new le("self",new j("data")),new le("otherdata",new nt(new j("data.AnyModSettingPrototype")))])),n.add(u),n.global_name="data",t.add(n);let f=new pe("data.raw");t.add(f);for(let[d,c]of this.prototypes)c.typename&&f.add(new ce(new rt(c.typename),new rr(new j("string"),new j(this.type_prefix+c.name))));return t}async generate_LuaLS_prototypes(e){let t=new Ce("prototype-api/prototypes",this.application_version);for(let[n,i]of this.prototypes){let s=new pe(this.type_prefix+i.name);s.description=await e(i.description,{scope:"prototype",member:i.name}),i.parent&&(s.parents=[new j(this.type_prefix+i.parent)]);for(let u of i.properties)s.add(new ce(u.name,this.lua_proto_type(u.type),await e(u.description,{scope:"prototype",member:i.name,part:u.name}),u.optional)),u.alt_name&&s.add(new ce(u.alt_name,this.lua_proto_type(u.type),await e(u.description,{scope:"prototype",member:i.name,part:u.alt_name}),u.optional));if(i.custom_properties){let u=i.custom_properties;s.add(new ce(this.lua_proto_type(u.key_type),this.lua_proto_type(u.value_type),await e(u.description,{scope:"prototype",member:i.name,part:"custom_properties"})))}t.add(s)}return t}lua_proto_type(e,t){switch(typeof e){case"string":switch(e){case"bool":return new j("boolean");case"boolean":case"string":case"float":case"double":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":case"int64":case"uint64":return new j(e)}return new j(this.type_prefix+e);case"object":switch(e.complex_type){case"struct":if(!t)throw new Error("struct without parent");return this.simple_structs.has(t.name)?new j(this.type_prefix+t.name):new j(this.type_prefix+t.name+".struct");case"array":return new nt(this.lua_proto_type(e.value,t));case"tuple":return new Pr(e.values.map(n=>this.lua_proto_type(n,t)));case"dictionary":return new rr(this.lua_proto_type(e.key,t),this.lua_proto_type(e.value,t));case"union":return new Ot(e.options.map(n=>this.lua_proto_type(n,t)));case"literal":return new rt(e.value);case"type":return this.lua_proto_type(e.value,t);default:throw new Error("Invalid Type")}default:throw new Error("Invalid Type")}}};var D=se(Wu()),_t=se(require("path")),Hd=se(require("fs/promises")),or=se(require("os")),un=se($d());var Od;(()=>{"use strict";var a={470:i=>{function s(d){if(typeof d!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(d))}function u(d,c){for(var p,_="",b=0,g=-1,y=0,S=0;S<=d.length;++S){if(S<d.length)p=d.charCodeAt(S);else{if(p===47)break;p=47}if(p===47){if(!(g===S-1||y===1))if(g!==S-1&&y===2){if(_.length<2||b!==2||_.charCodeAt(_.length-1)!==46||_.charCodeAt(_.length-2)!==46){if(_.length>2){var A=_.lastIndexOf("/");if(A!==_.length-1){A===-1?(_="",b=0):b=(_=_.slice(0,A)).length-1-_.lastIndexOf("/"),g=S,y=0;continue}}else if(_.length===2||_.length===1){_="",b=0,g=S,y=0;continue}}c&&(_.length>0?_+="/..":_="..",b=2)}else _.length>0?_+="/"+d.slice(g+1,S):_=d.slice(g+1,S),b=S-g-1;g=S,y=0}else p===46&&y!==-1?++y:y=-1}return _}var f={resolve:function(){for(var d,c="",p=!1,_=arguments.length-1;_>=-1&&!p;_--){var b;_>=0?b=arguments[_]:(d===void 0&&(d=process.cwd()),b=d),s(b),b.length!==0&&(c=b+"/"+c,p=b.charCodeAt(0)===47)}return c=u(c,!p),p?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(d){if(s(d),d.length===0)return".";var c=d.charCodeAt(0)===47,p=d.charCodeAt(d.length-1)===47;return(d=u(d,!c)).length!==0||c||(d="."),d.length>0&&p&&(d+="/"),c?"/"+d:d},isAbsolute:function(d){return s(d),d.length>0&&d.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var d,c=0;c<arguments.length;++c){var p=arguments[c];s(p),p.length>0&&(d===void 0?d=p:d+="/"+p)}return d===void 0?".":f.normalize(d)},relative:function(d,c){if(s(d),s(c),d===c||(d=f.resolve(d))===(c=f.resolve(c)))return"";for(var p=1;p<d.length&&d.charCodeAt(p)===47;++p);for(var _=d.length,b=_-p,g=1;g<c.length&&c.charCodeAt(g)===47;++g);for(var y=c.length-g,S=b<y?b:y,A=-1,P=0;P<=S;++P){if(P===S){if(y>S){if(c.charCodeAt(g+P)===47)return c.slice(g+P+1);if(P===0)return c.slice(g+P)}else b>S&&(d.charCodeAt(p+P)===47?A=P:P===0&&(A=0));break}var L=d.charCodeAt(p+P);if(L!==c.charCodeAt(g+P))break;L===47&&(A=P)}var Q="";for(P=p+A+1;P<=_;++P)P!==_&&d.charCodeAt(P)!==47||(Q.length===0?Q+="..":Q+="/..");return Q.length>0?Q+c.slice(g+A):(g+=A,c.charCodeAt(g)===47&&++g,c.slice(g))},_makeLong:function(d){return d},dirname:function(d){if(s(d),d.length===0)return".";for(var c=d.charCodeAt(0),p=c===47,_=-1,b=!0,g=d.length-1;g>=1;--g)if((c=d.charCodeAt(g))===47){if(!b){_=g;break}}else b=!1;return _===-1?p?"/":".":p&&_===1?"//":d.slice(0,_)},basename:function(d,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(d);var p,_=0,b=-1,g=!0;if(c!==void 0&&c.length>0&&c.length<=d.length){if(c.length===d.length&&c===d)return"";var y=c.length-1,S=-1;for(p=d.length-1;p>=0;--p){var A=d.charCodeAt(p);if(A===47){if(!g){_=p+1;break}}else S===-1&&(g=!1,S=p+1),y>=0&&(A===c.charCodeAt(y)?--y==-1&&(b=p):(y=-1,b=S))}return _===b?b=S:b===-1&&(b=d.length),d.slice(_,b)}for(p=d.length-1;p>=0;--p)if(d.charCodeAt(p)===47){if(!g){_=p+1;break}}else b===-1&&(g=!1,b=p+1);return b===-1?"":d.slice(_,b)},extname:function(d){s(d);for(var c=-1,p=0,_=-1,b=!0,g=0,y=d.length-1;y>=0;--y){var S=d.charCodeAt(y);if(S!==47)_===-1&&(b=!1,_=y+1),S===46?c===-1?c=y:g!==1&&(g=1):c!==-1&&(g=-1);else if(!b){p=y+1;break}}return c===-1||_===-1||g===0||g===1&&c===_-1&&c===p+1?"":d.slice(c,_)},format:function(d){if(d===null||typeof d!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof d);return function(c,p){var _=p.dir||p.root,b=p.base||(p.name||"")+(p.ext||"");return _?_===p.root?_+b:_+"/"+b:b}(0,d)},parse:function(d){s(d);var c={root:"",dir:"",base:"",ext:"",name:""};if(d.length===0)return c;var p,_=d.charCodeAt(0),b=_===47;b?(c.root="/",p=1):p=0;for(var g=-1,y=0,S=-1,A=!0,P=d.length-1,L=0;P>=p;--P)if((_=d.charCodeAt(P))!==47)S===-1&&(A=!1,S=P+1),_===46?g===-1?g=P:L!==1&&(L=1):g!==-1&&(L=-1);else if(!A){y=P+1;break}return g===-1||S===-1||L===0||L===1&&g===S-1&&g===y+1?S!==-1&&(c.base=c.name=y===0&&b?d.slice(1,S):d.slice(y,S)):(y===0&&b?(c.name=d.slice(1,g),c.base=d.slice(1,S)):(c.name=d.slice(y,g),c.base=d.slice(y,S)),c.ext=d.slice(g,S)),y>0?c.dir=d.slice(0,y-1):b&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};f.posix=f,i.exports=f}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var u=e[i]={exports:{}};return a[i](u,u.exports,t),u.exports}t.d=(i,s)=>{for(var u in s)t.o(s,u)&&!t.o(i,u)&&Object.defineProperty(i,u,{enumerable:!0,get:s[u]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;t.r(n),t.d(n,{URI:()=>b,Utils:()=>Mt}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let s=/^\w[\w\d+.-]*$/,u=/^\//,f=/^\/\//;function d(C,E){if(!C.scheme&&E)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${C.authority}", path: "${C.path}", query: "${C.query}", fragment: "${C.fragment}"}`);if(C.scheme&&!s.test(C.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(C.path){if(C.authority){if(!u.test(C.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(C.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let c="",p="/",_=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class b{static isUri(E){return E instanceof b||!!E&&typeof E.authority=="string"&&typeof E.fragment=="string"&&typeof E.path=="string"&&typeof E.query=="string"&&typeof E.scheme=="string"&&typeof E.fsPath=="string"&&typeof E.with=="function"&&typeof E.toString=="function"}scheme;authority;path;query;fragment;constructor(E,$,O,Y,H,V=!1){typeof E=="object"?(this.scheme=E.scheme||c,this.authority=E.authority||c,this.path=E.path||c,this.query=E.query||c,this.fragment=E.fragment||c):(this.scheme=function(we,ve){return we||ve?we:"file"}(E,V),this.authority=$||c,this.path=function(we,ve){switch(we){case"https":case"http":case"file":ve?ve[0]!==p&&(ve=p+ve):ve=p}return ve}(this.scheme,O||c),this.query=Y||c,this.fragment=H||c,d(this,V))}get fsPath(){return L(this,!1)}with(E){if(!E)return this;let{scheme:$,authority:O,path:Y,query:H,fragment:V}=E;return $===void 0?$=this.scheme:$===null&&($=c),O===void 0?O=this.authority:O===null&&(O=c),Y===void 0?Y=this.path:Y===null&&(Y=c),H===void 0?H=this.query:H===null&&(H=c),V===void 0?V=this.fragment:V===null&&(V=c),$===this.scheme&&O===this.authority&&Y===this.path&&H===this.query&&V===this.fragment?this:new y($,O,Y,H,V)}static parse(E,$=!1){let O=_.exec(E);return O?new y(O[2]||c,J(O[4]||c),J(O[5]||c),J(O[7]||c),J(O[9]||c),$):new y(c,c,c,c,c)}static file(E){let $=c;if(i&&(E=E.replace(/\\/g,p)),E[0]===p&&E[1]===p){let O=E.indexOf(p,2);O===-1?($=E.substring(2),E=p):($=E.substring(2,O),E=E.substring(O)||p)}return new y("file",$,E,c,c)}static from(E){let $=new y(E.scheme,E.authority,E.path,E.query,E.fragment);return d($,!0),$}toString(E=!1){return Q(this,E)}toJSON(){return this}static revive(E){if(E){if(E instanceof b)return E;{let $=new y(E);return $._formatted=E.external,$._fsPath=E._sep===g?E.fsPath:null,$}}return E}}let g=i?1:void 0;class y extends b{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=L(this,!1)),this._fsPath}toString(E=!1){return E?Q(this,!0):(this._formatted||(this._formatted=Q(this,!1)),this._formatted)}toJSON(){let E={$mid:1};return this._fsPath&&(E.fsPath=this._fsPath,E._sep=g),this._formatted&&(E.external=this._formatted),this.path&&(E.path=this.path),this.scheme&&(E.scheme=this.scheme),this.authority&&(E.authority=this.authority),this.query&&(E.query=this.query),this.fragment&&(E.fragment=this.fragment),E}}let S={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function A(C,E,$){let O,Y=-1;for(let H=0;H<C.length;H++){let V=C.charCodeAt(H);if(V>=97&&V<=122||V>=65&&V<=90||V>=48&&V<=57||V===45||V===46||V===95||V===126||E&&V===47||$&&V===91||$&&V===93||$&&V===58)Y!==-1&&(O+=encodeURIComponent(C.substring(Y,H)),Y=-1),O!==void 0&&(O+=C.charAt(H));else{O===void 0&&(O=C.substr(0,H));let we=S[V];we!==void 0?(Y!==-1&&(O+=encodeURIComponent(C.substring(Y,H)),Y=-1),O+=we):Y===-1&&(Y=H)}}return Y!==-1&&(O+=encodeURIComponent(C.substring(Y))),O!==void 0?O:C}function P(C){let E;for(let $=0;$<C.length;$++){let O=C.charCodeAt($);O===35||O===63?(E===void 0&&(E=C.substr(0,$)),E+=S[O]):E!==void 0&&(E+=C[$])}return E!==void 0?E:C}function L(C,E){let $;return $=C.authority&&C.path.length>1&&C.scheme==="file"?`//${C.authority}${C.path}`:C.path.charCodeAt(0)===47&&(C.path.charCodeAt(1)>=65&&C.path.charCodeAt(1)<=90||C.path.charCodeAt(1)>=97&&C.path.charCodeAt(1)<=122)&&C.path.charCodeAt(2)===58?E?C.path.substr(1):C.path[1].toLowerCase()+C.path.substr(2):C.path,i&&($=$.replace(/\//g,"\\")),$}function Q(C,E){let $=E?P:A,O="",{scheme:Y,authority:H,path:V,query:we,fragment:ve}=C;if(Y&&(O+=Y,O+=":"),(H||Y==="file")&&(O+=p,O+=p),H){let ue=H.indexOf("@");if(ue!==-1){let Nt=H.substr(0,ue);H=H.substr(ue+1),ue=Nt.lastIndexOf(":"),ue===-1?O+=$(Nt,!1,!1):(O+=$(Nt.substr(0,ue),!1,!1),O+=":",O+=$(Nt.substr(ue+1),!1,!0)),O+="@"}H=H.toLowerCase(),ue=H.lastIndexOf(":"),ue===-1?O+=$(H,!1,!0):(O+=$(H.substr(0,ue),!1,!0),O+=H.substr(ue))}if(V){if(V.length>=3&&V.charCodeAt(0)===47&&V.charCodeAt(2)===58){let ue=V.charCodeAt(1);ue>=65&&ue<=90&&(V=`/${String.fromCharCode(ue+32)}:${V.substr(3)}`)}else if(V.length>=2&&V.charCodeAt(1)===58){let ue=V.charCodeAt(0);ue>=65&&ue<=90&&(V=`${String.fromCharCode(ue+32)}:${V.substr(2)}`)}O+=$(V,!0,!1)}return we&&(O+="?",O+=$(we,!1,!1)),ve&&(O+="#",O+=E?ve:A(ve,!1,!1)),O}function K(C){try{return decodeURIComponent(C)}catch{return C.length>3?C.substr(0,3)+K(C.substr(3)):C}}let X=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function J(C){return C.match(X)?C.replace(X,E=>K(E)):C}var Ve=t(470);let ze=Ve.posix||Ve,wt="/";var Mt;(function(C){C.joinPath=function(E,...$){return E.with({path:ze.join(E.path,...$)})},C.resolvePath=function(E,...$){let O=E.path,Y=!1;O[0]!==wt&&(O=wt+O,Y=!0);let H=ze.resolve(O,...$);return Y&&H[0]===wt&&!E.authority&&(H=H.substring(1)),E.with({path:H})},C.dirname=function(E){if(E.path.length===0||E.path===wt)return E;let $=ze.dirname(E.path);return $.length===1&&$.charCodeAt(0)===46&&($=""),E.with({path:$})},C.basename=function(E){return ze.basename(E.path)},C.extname=function(E){return ze.extname(E.path)}})(Mt||(Mt={}))})(),Od=n})();var{URI:xe,Utils:Ye}=Od;var Qa=require("child_process"),Wd=require("events");var Fd=require("events"),kr=class extends Fd.EventEmitter{buf;matchers;constructor(e,t){super(),this.buf=Buffer.alloc(0),this.matchers=t instanceof Buffer?[t]:t,e.on("close",()=>{this.emit("close")}),e.on("end",()=>{this.emit("end")}),e.on("data",n=>{for(this.buf=Buffer.concat([this.buf,n]);this.buf.length>0;){let i=this.matchers.map(u=>this.buf.indexOf(u instanceof Buffer?u:u.start)),s=i.reduce((u,f)=>u===-1?f:f===-1?u:Math.min(u,f));if(s!==-1){let u=this.matchers[i.indexOf(s)];if(u instanceof Buffer)s>0&&this.emit("segment",this.buf.slice(0,s)),this.buf=this.buf.slice(s+u.length);else{s>0&&(this.emit("segment",this.buf.slice(0,s)),this.buf=this.buf.slice(s));let f=this.buf.indexOf(u.end,u.start.length);if(f!==-1)this.emit("segment",this.buf.slice(u.start.length,f)),this.buf=this.buf.slice(f+u.end.length);else return}}else return}})}};var Vd=se(require("path")),zd=se(Ud()),Sb=[Buffer.from(`
3042
+ `)}};var ea=class{docs;concepts;simple_structs;prototypes;type_prefix="data.";constructor(e,t){if(this.docs=JSON.parse(e),this.docs.application!=="factorio")throw`Unknown application: ${this.docs.application}`;if(!(this.docs.api_version===4||this.docs.api_version===5||this.docs.api_version===6))throw`Unsupported JSON Version ${this.docs.api_version}`;if(this.docs.stage!=="prototype")throw`Wrong stage: ${this.docs.stage}`;this.concepts=new Map(this.docs.types.map(n=>[n.name,n])),this.simple_structs=new Set;for(let[n,i]of this.concepts)typeof i.type=="object"&&i.type.complex_type==="struct"&&this.simple_structs.add(n);this.prototypes=new Map(this.docs.prototypes.map(n=>[n.name,n]))}get api_version(){return this.docs.api_version}get stage(){return this.docs.stage}get application(){return this.docs.application}get application_version(){return this.docs.application_version}resolve_link(e,t){if(t=t?`#${t}`:"",["prototypes","types"].includes(e))return`/${e}.html${t}`;if(this.concepts.has(e))return`/types/${e}.html${t}`;if(this.prototypes.has(e))return`/prototypes/${e}.html${t}`;console.warn(`Invalid Link: prototype:${e}${t}`)}generate_LuaLS_docs(e){return[this.generate_LuaLS_concepts(e),this.generate_LuaLS_prototypes(e),this.generate_LuaLS_data(e)]}async generate_LuaLS_concepts(e){let t=new Ie("prototype-api/concepts",this.application_version);for(let[n,i]of this.concepts){if(i.type==="builtin")continue;let s=this.simple_structs.has(i.name),u=s?"":".struct";if(i.properties){let f=new pe(this.type_prefix+i.name+u);f.description=await e(i.description,{scope:"prototype",member:i.name}),i.parent&&(f.parents=[new U(this.type_prefix+i.parent+u)]);for(let d of i.properties)f.add(new ce(d.name,this.lua_proto_type(d.type),await e(d.description,{scope:"prototype",member:i.name,part:d.name}),d.optional));t.add(f)}if(!s){let f=i.type;i.name==="AnyPrototype"&&typeof f=="object"&&f.complex_type==="union"&&(f={complex_type:"union",options:f.options.filter(c=>typeof c=="object"?!(c.complex_type==="type"&&c.value==="MapGenPresets"):c!=="MapGenPresets")}),t.add(new ht(this.type_prefix+i.name,this.lua_proto_type(f,i),i.description))}}return t}generate_LuaLS_data(e){let t=new Ie("prototype-api/data",this.application_version),n=new pe("data");n.add(new ce("raw",new U("data.raw"))),n.add(new ce("is_demo",new U("boolean")));let i=this.concepts.has("AnyPrototype"),s=i?"data.AnyPrototype":"data.PrototypeBase",u=new Ue("extend",[new le("self",new U("data")),new le("otherdata",new nt(new U(s)))]);i&&u.add(new mt(void 0,[new le("self",new U("data")),new le("otherdata",new nt(new U("data.AnyModSettingPrototype")))])),n.add(u),n.global_name="data",t.add(n);let f=new pe("data.raw");t.add(f);for(let[d,c]of this.prototypes)c.typename&&f.add(new ce(new rt(c.typename),new rr(new U("string"),new U(this.type_prefix+c.name))));return t}async generate_LuaLS_prototypes(e){let t=new Ie("prototype-api/prototypes",this.application_version);for(let[n,i]of this.prototypes){let s=new pe(this.type_prefix+i.name);s.description=await e(i.description,{scope:"prototype",member:i.name}),i.parent&&(s.parents=[new U(this.type_prefix+i.parent)]);for(let u of i.properties)s.add(new ce(u.name,this.lua_proto_type(u.type),await e(u.description,{scope:"prototype",member:i.name,part:u.name}),u.optional)),u.alt_name&&s.add(new ce(u.alt_name,this.lua_proto_type(u.type),await e(u.description,{scope:"prototype",member:i.name,part:u.alt_name}),u.optional));if(i.custom_properties){let u=i.custom_properties;s.add(new ce(this.lua_proto_type(u.key_type),this.lua_proto_type(u.value_type),await e(u.description,{scope:"prototype",member:i.name,part:"custom_properties"})))}t.add(s)}return t}lua_proto_type(e,t){switch(typeof e){case"string":switch(e){case"bool":return new U("boolean");case"boolean":case"string":case"float":case"double":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":case"int64":case"uint64":return new U(e)}return new U(this.type_prefix+e);case"object":switch(e.complex_type){case"struct":if(!t)throw new Error("struct without parent");return this.simple_structs.has(t.name)?new U(this.type_prefix+t.name):new U(this.type_prefix+t.name+".struct");case"array":return new nt(this.lua_proto_type(e.value,t));case"tuple":return new Er(e.values.map(n=>this.lua_proto_type(n,t)));case"dictionary":return new rr(this.lua_proto_type(e.key,t),this.lua_proto_type(e.value,t));case"union":return new Ot(e.options.map(n=>this.lua_proto_type(n,t)));case"literal":return new rt(e.value);case"type":return this.lua_proto_type(e.value,t);default:throw new Error("Invalid Type")}default:throw new Error("Invalid Type")}}};var D=se(Wu()),_t=se(require("path")),Hd=se(require("fs/promises")),or=se(require("os")),un=se($d());var Od;(()=>{"use strict";var a={470:i=>{function s(d){if(typeof d!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(d))}function u(d,c){for(var p,_="",b=0,g=-1,y=0,S=0;S<=d.length;++S){if(S<d.length)p=d.charCodeAt(S);else{if(p===47)break;p=47}if(p===47){if(!(g===S-1||y===1))if(g!==S-1&&y===2){if(_.length<2||b!==2||_.charCodeAt(_.length-1)!==46||_.charCodeAt(_.length-2)!==46){if(_.length>2){var A=_.lastIndexOf("/");if(A!==_.length-1){A===-1?(_="",b=0):b=(_=_.slice(0,A)).length-1-_.lastIndexOf("/"),g=S,y=0;continue}}else if(_.length===2||_.length===1){_="",b=0,g=S,y=0;continue}}c&&(_.length>0?_+="/..":_="..",b=2)}else _.length>0?_+="/"+d.slice(g+1,S):_=d.slice(g+1,S),b=S-g-1;g=S,y=0}else p===46&&y!==-1?++y:y=-1}return _}var f={resolve:function(){for(var d,c="",p=!1,_=arguments.length-1;_>=-1&&!p;_--){var b;_>=0?b=arguments[_]:(d===void 0&&(d=process.cwd()),b=d),s(b),b.length!==0&&(c=b+"/"+c,p=b.charCodeAt(0)===47)}return c=u(c,!p),p?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(d){if(s(d),d.length===0)return".";var c=d.charCodeAt(0)===47,p=d.charCodeAt(d.length-1)===47;return(d=u(d,!c)).length!==0||c||(d="."),d.length>0&&p&&(d+="/"),c?"/"+d:d},isAbsolute:function(d){return s(d),d.length>0&&d.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var d,c=0;c<arguments.length;++c){var p=arguments[c];s(p),p.length>0&&(d===void 0?d=p:d+="/"+p)}return d===void 0?".":f.normalize(d)},relative:function(d,c){if(s(d),s(c),d===c||(d=f.resolve(d))===(c=f.resolve(c)))return"";for(var p=1;p<d.length&&d.charCodeAt(p)===47;++p);for(var _=d.length,b=_-p,g=1;g<c.length&&c.charCodeAt(g)===47;++g);for(var y=c.length-g,S=b<y?b:y,A=-1,E=0;E<=S;++E){if(E===S){if(y>S){if(c.charCodeAt(g+E)===47)return c.slice(g+E+1);if(E===0)return c.slice(g+E)}else b>S&&(d.charCodeAt(p+E)===47?A=E:E===0&&(A=0));break}var L=d.charCodeAt(p+E);if(L!==c.charCodeAt(g+E))break;L===47&&(A=E)}var Q="";for(E=p+A+1;E<=_;++E)E!==_&&d.charCodeAt(E)!==47||(Q.length===0?Q+="..":Q+="/..");return Q.length>0?Q+c.slice(g+A):(g+=A,c.charCodeAt(g)===47&&++g,c.slice(g))},_makeLong:function(d){return d},dirname:function(d){if(s(d),d.length===0)return".";for(var c=d.charCodeAt(0),p=c===47,_=-1,b=!0,g=d.length-1;g>=1;--g)if((c=d.charCodeAt(g))===47){if(!b){_=g;break}}else b=!1;return _===-1?p?"/":".":p&&_===1?"//":d.slice(0,_)},basename:function(d,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(d);var p,_=0,b=-1,g=!0;if(c!==void 0&&c.length>0&&c.length<=d.length){if(c.length===d.length&&c===d)return"";var y=c.length-1,S=-1;for(p=d.length-1;p>=0;--p){var A=d.charCodeAt(p);if(A===47){if(!g){_=p+1;break}}else S===-1&&(g=!1,S=p+1),y>=0&&(A===c.charCodeAt(y)?--y==-1&&(b=p):(y=-1,b=S))}return _===b?b=S:b===-1&&(b=d.length),d.slice(_,b)}for(p=d.length-1;p>=0;--p)if(d.charCodeAt(p)===47){if(!g){_=p+1;break}}else b===-1&&(g=!1,b=p+1);return b===-1?"":d.slice(_,b)},extname:function(d){s(d);for(var c=-1,p=0,_=-1,b=!0,g=0,y=d.length-1;y>=0;--y){var S=d.charCodeAt(y);if(S!==47)_===-1&&(b=!1,_=y+1),S===46?c===-1?c=y:g!==1&&(g=1):c!==-1&&(g=-1);else if(!b){p=y+1;break}}return c===-1||_===-1||g===0||g===1&&c===_-1&&c===p+1?"":d.slice(c,_)},format:function(d){if(d===null||typeof d!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof d);return function(c,p){var _=p.dir||p.root,b=p.base||(p.name||"")+(p.ext||"");return _?_===p.root?_+b:_+"/"+b:b}(0,d)},parse:function(d){s(d);var c={root:"",dir:"",base:"",ext:"",name:""};if(d.length===0)return c;var p,_=d.charCodeAt(0),b=_===47;b?(c.root="/",p=1):p=0;for(var g=-1,y=0,S=-1,A=!0,E=d.length-1,L=0;E>=p;--E)if((_=d.charCodeAt(E))!==47)S===-1&&(A=!1,S=E+1),_===46?g===-1?g=E:L!==1&&(L=1):g!==-1&&(L=-1);else if(!A){y=E+1;break}return g===-1||S===-1||L===0||L===1&&g===S-1&&g===y+1?S!==-1&&(c.base=c.name=y===0&&b?d.slice(1,S):d.slice(y,S)):(y===0&&b?(c.name=d.slice(1,g),c.base=d.slice(1,S)):(c.name=d.slice(y,g),c.base=d.slice(y,S)),c.ext=d.slice(g,S)),y>0?c.dir=d.slice(0,y-1):b&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};f.posix=f,i.exports=f}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var u=e[i]={exports:{}};return a[i](u,u.exports,t),u.exports}t.d=(i,s)=>{for(var u in s)t.o(s,u)&&!t.o(i,u)&&Object.defineProperty(i,u,{enumerable:!0,get:s[u]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;t.r(n),t.d(n,{URI:()=>b,Utils:()=>Mt}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let s=/^\w[\w\d+.-]*$/,u=/^\//,f=/^\/\//;function d(I,P){if(!I.scheme&&P)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${I.authority}", path: "${I.path}", query: "${I.query}", fragment: "${I.fragment}"}`);if(I.scheme&&!s.test(I.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(I.path){if(I.authority){if(!u.test(I.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(I.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let c="",p="/",_=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class b{static isUri(P){return P instanceof b||!!P&&typeof P.authority=="string"&&typeof P.fragment=="string"&&typeof P.path=="string"&&typeof P.query=="string"&&typeof P.scheme=="string"&&typeof P.fsPath=="string"&&typeof P.with=="function"&&typeof P.toString=="function"}scheme;authority;path;query;fragment;constructor(P,$,O,X,H,V=!1){typeof P=="object"?(this.scheme=P.scheme||c,this.authority=P.authority||c,this.path=P.path||c,this.query=P.query||c,this.fragment=P.fragment||c):(this.scheme=function(we,ve){return we||ve?we:"file"}(P,V),this.authority=$||c,this.path=function(we,ve){switch(we){case"https":case"http":case"file":ve?ve[0]!==p&&(ve=p+ve):ve=p}return ve}(this.scheme,O||c),this.query=X||c,this.fragment=H||c,d(this,V))}get fsPath(){return L(this,!1)}with(P){if(!P)return this;let{scheme:$,authority:O,path:X,query:H,fragment:V}=P;return $===void 0?$=this.scheme:$===null&&($=c),O===void 0?O=this.authority:O===null&&(O=c),X===void 0?X=this.path:X===null&&(X=c),H===void 0?H=this.query:H===null&&(H=c),V===void 0?V=this.fragment:V===null&&(V=c),$===this.scheme&&O===this.authority&&X===this.path&&H===this.query&&V===this.fragment?this:new y($,O,X,H,V)}static parse(P,$=!1){let O=_.exec(P);return O?new y(O[2]||c,J(O[4]||c),J(O[5]||c),J(O[7]||c),J(O[9]||c),$):new y(c,c,c,c,c)}static file(P){let $=c;if(i&&(P=P.replace(/\\/g,p)),P[0]===p&&P[1]===p){let O=P.indexOf(p,2);O===-1?($=P.substring(2),P=p):($=P.substring(2,O),P=P.substring(O)||p)}return new y("file",$,P,c,c)}static from(P){let $=new y(P.scheme,P.authority,P.path,P.query,P.fragment);return d($,!0),$}toString(P=!1){return Q(this,P)}toJSON(){return this}static revive(P){if(P){if(P instanceof b)return P;{let $=new y(P);return $._formatted=P.external,$._fsPath=P._sep===g?P.fsPath:null,$}}return P}}let g=i?1:void 0;class y extends b{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=L(this,!1)),this._fsPath}toString(P=!1){return P?Q(this,!0):(this._formatted||(this._formatted=Q(this,!1)),this._formatted)}toJSON(){let P={$mid:1};return this._fsPath&&(P.fsPath=this._fsPath,P._sep=g),this._formatted&&(P.external=this._formatted),this.path&&(P.path=this.path),this.scheme&&(P.scheme=this.scheme),this.authority&&(P.authority=this.authority),this.query&&(P.query=this.query),this.fragment&&(P.fragment=this.fragment),P}}let S={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function A(I,P,$){let O,X=-1;for(let H=0;H<I.length;H++){let V=I.charCodeAt(H);if(V>=97&&V<=122||V>=65&&V<=90||V>=48&&V<=57||V===45||V===46||V===95||V===126||P&&V===47||$&&V===91||$&&V===93||$&&V===58)X!==-1&&(O+=encodeURIComponent(I.substring(X,H)),X=-1),O!==void 0&&(O+=I.charAt(H));else{O===void 0&&(O=I.substr(0,H));let we=S[V];we!==void 0?(X!==-1&&(O+=encodeURIComponent(I.substring(X,H)),X=-1),O+=we):X===-1&&(X=H)}}return X!==-1&&(O+=encodeURIComponent(I.substring(X))),O!==void 0?O:I}function E(I){let P;for(let $=0;$<I.length;$++){let O=I.charCodeAt($);O===35||O===63?(P===void 0&&(P=I.substr(0,$)),P+=S[O]):P!==void 0&&(P+=I[$])}return P!==void 0?P:I}function L(I,P){let $;return $=I.authority&&I.path.length>1&&I.scheme==="file"?`//${I.authority}${I.path}`:I.path.charCodeAt(0)===47&&(I.path.charCodeAt(1)>=65&&I.path.charCodeAt(1)<=90||I.path.charCodeAt(1)>=97&&I.path.charCodeAt(1)<=122)&&I.path.charCodeAt(2)===58?P?I.path.substr(1):I.path[1].toLowerCase()+I.path.substr(2):I.path,i&&($=$.replace(/\//g,"\\")),$}function Q(I,P){let $=P?E:A,O="",{scheme:X,authority:H,path:V,query:we,fragment:ve}=I;if(X&&(O+=X,O+=":"),(H||X==="file")&&(O+=p,O+=p),H){let ue=H.indexOf("@");if(ue!==-1){let Nt=H.substr(0,ue);H=H.substr(ue+1),ue=Nt.lastIndexOf(":"),ue===-1?O+=$(Nt,!1,!1):(O+=$(Nt.substr(0,ue),!1,!1),O+=":",O+=$(Nt.substr(ue+1),!1,!0)),O+="@"}H=H.toLowerCase(),ue=H.lastIndexOf(":"),ue===-1?O+=$(H,!1,!0):(O+=$(H.substr(0,ue),!1,!0),O+=H.substr(ue))}if(V){if(V.length>=3&&V.charCodeAt(0)===47&&V.charCodeAt(2)===58){let ue=V.charCodeAt(1);ue>=65&&ue<=90&&(V=`/${String.fromCharCode(ue+32)}:${V.substr(3)}`)}else if(V.length>=2&&V.charCodeAt(1)===58){let ue=V.charCodeAt(0);ue>=65&&ue<=90&&(V=`${String.fromCharCode(ue+32)}:${V.substr(2)}`)}O+=$(V,!0,!1)}return we&&(O+="?",O+=$(we,!1,!1)),ve&&(O+="#",O+=P?ve:A(ve,!1,!1)),O}function G(I){try{return decodeURIComponent(I)}catch{return I.length>3?I.substr(0,3)+G(I.substr(3)):I}}let Y=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function J(I){return I.match(Y)?I.replace(Y,P=>G(P)):I}var Ve=t(470);let ze=Ve.posix||Ve,wt="/";var Mt;(function(I){I.joinPath=function(P,...$){return P.with({path:ze.join(P.path,...$)})},I.resolvePath=function(P,...$){let O=P.path,X=!1;O[0]!==wt&&(O=wt+O,X=!0);let H=ze.resolve(O,...$);return X&&H[0]===wt&&!P.authority&&(H=H.substring(1)),P.with({path:H})},I.dirname=function(P){if(P.path.length===0||P.path===wt)return P;let $=ze.dirname(P.path);return $.length===1&&$.charCodeAt(0)===46&&($=""),P.with({path:$})},I.basename=function(P){return ze.basename(P.path)},I.extname=function(P){return ze.extname(P.path)}})(Mt||(Mt={}))})(),Od=n})();var{URI:xe,Utils:Xe}=Od;var Qa=require("child_process"),Wd=require("events");var Fd=require("events"),kr=class extends Fd.EventEmitter{buf;matchers;constructor(e,t){super(),this.buf=Buffer.alloc(0),this.matchers=t instanceof Buffer?[t]:t,e.on("close",()=>{this.emit("close")}),e.on("end",()=>{this.emit("end")}),e.on("data",n=>{for(this.buf=Buffer.concat([this.buf,n]);this.buf.length>0;){let i=this.matchers.map(u=>this.buf.indexOf(u instanceof Buffer?u:u.start)),s=i.reduce((u,f)=>u===-1?f:f===-1?u:Math.min(u,f));if(s!==-1){let u=this.matchers[i.indexOf(s)];if(u instanceof Buffer)s>0&&this.emit("segment",this.buf.slice(0,s)),this.buf=this.buf.slice(s+u.length);else{s>0&&(this.emit("segment",this.buf.slice(0,s)),this.buf=this.buf.slice(s));let f=this.buf.indexOf(u.end,u.start.length);if(f!==-1)this.emit("segment",this.buf.slice(u.start.length,f)),this.buf=this.buf.slice(f+u.end.length);else return}}else return}})}};var Vd=se(require("path")),zd=se(jd()),Sb=[Buffer.from(`
2968
3043
  `),Buffer.from("lua_debug> ")],Rb=[Buffer.from(`
2969
- `),{start:Buffer.from([239,183,174]),end:Buffer.from([239,183,175])}],Ai=class extends Wd.EventEmitter{factorio;hasNativeDebug;constructor(e,t,n,i){super();let s={cwd:Vd.dirname(e),env:Object.assign({},process.env,i,{SteamAppId:"427520"})};n?(this.hasNativeDebug=!0,this.factorio=(0,Qa.spawn)(n,[e,...t],s)):this.factorio=(0,Qa.spawn)(e,t,s),this.factorio.on("exit",(...d)=>this.emit("exit",...d)),new kr(this.factorio.stderr,Sb).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stderr",d)}),new kr(this.factorio.stdout,Rb).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stdout",d)})}writeStdin(e){return this.factorio.stdin.write(e)}kill(){if(this.hasNativeDebug)this.factorio.pid&&(0,zd.default)(this.factorio.pid);else{this.factorio.kill();try{this.factorio.kill("SIGKILL")}catch{}}}};var Ja=Buffer.from([27,76,117,97,82,0,1,4,8,4,8,0,25,147,13,10,26,10]);function Ti(a,e){let t=a.readBigUInt64LE(e);e+=8;let n;return t>0?(n=a.subarray(e,e+Number(t)-1),e+=Number(t)):n=Buffer.alloc(0,0),[n,e]}var Za=class{constructor(e,t){this.raw=e;this.line=t}get Op(){return this.raw&63}get A(){return this.raw>>6&255}get B(){return this.raw>>23&511}get C(){return this.raw>>14&511}get Ax(){return this.raw>>6&67108863}get Bx(){return this.raw>>14&262143}get sBx(){return this.Bx-131071}},es=class{name;instack;idx;constructor(e,t){this.instack=e.readUInt8(t)!==0,this.idx=e.readUInt8(t+1)}},ts=class{name;start;end;dumpsize;constructor(e,t){let n;[n,t]=Ti(e,t),this.name=n.toString("utf8"),this.start=e.readUInt32LE(t),t+=4,this.end=e.readUInt32LE(t),t+=4,this.dumpsize=(n.length===0?8:8+n.length+1)+8}},Ir=class{constructor(e,t){this.type=e;this.value=t;switch(e){case 0:if(t!==void 0)throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 1:if(typeof t!="boolean")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 3:if(typeof t!="number")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 4:if(!(t instanceof Buffer))throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;default:throw new Error(`Invalid Lua Constant Type: ${e}`)}}get label(){switch(this.type){case 0:return"nil";case 1:case 3:return this.value.toString();case 4:return`"${this.value.toString("utf8")}"`;default:throw new Error(`Invalid Lua Constant Type: ${this.type} ${this.value}`)}}},ki=class a{source;nparam;is_vararg;maxstack;locals=[];upvals=[];instruction_count;_instraw;_instlines;constants=[];inner_functions=[];firstline;lastline;nextbyte;constructor(e,t){if(t===void 0){if(!e.subarray(0,Ja.length).equals(Ja))throw new Error("Invalid Header");t=Ja.length}this.firstline=e.readUInt32LE(t),t+=4,this.lastline=e.readUInt32LE(t),t+=4,this.nparam=e[t++],this.is_vararg=e[t++]!==0,this.maxstack=e[t++],this.instruction_count=e.readUInt32LE(t),t+=4,this._instraw=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let n=e.readUInt32LE(t);t+=4;for(let c=0;c<n;c++){let p=e[t++];switch(p){case 0:this.constants.push(new Ir(0));break;case 1:this.constants.push(new Ir(1,e[t++]!==0));break;case 3:this.constants.push(new Ir(3,e.readDoubleLE(t))),t+=8;break;case 4:let _;[_,t]=Ti(e,t),this.constants.push(new Ir(4,_));break;default:throw new Error(`Invalid Lua Constant Type: ${p}`)}}let i=e.readUInt32LE(t);t+=4;for(let c=0;c<i;c++){let p=new a(e,t);t=p.nextbyte,this.inner_functions.push(p)}let s=e.readUInt32LE(t);t+=4;for(let c=0;c<s;c++)this.upvals.push(new es(e,t)),t+=2;{let c;[c,t]=Ti(e,t),this.source=c.toString("utf8")}let u=e.readUInt32LE(t);if(t+=4,u!==this.instruction_count)throw new Error("line info count mismatch");this._instlines=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let f=e.readUInt32LE(t);t+=4;for(let c=0;c<f;c++){let p=new ts(e,t);t+=p.dumpsize,this.locals.push(p)}let d=e.readUInt32LE(t);t+=4;for(let c=0;c<d;c++){let p;[p,t]=Ti(e,t),this.upvals[c].name=p.toString("utf8")}this.nextbyte=t}_baseAddr;get baseAddr(){return this._baseAddr}rebase(e){let t=e;return this._baseAddr=t,t+=this.instruction_count,this.inner_functions.forEach(n=>{t=n.rebase(t)}),t}_instructions=[];instruction(e){if(e>this.instruction_count-1)return;let t=this._instructions[e];return t===void 0&&(t=new Za(this._instraw.readUint32LE(e*4),this._instlines.readUint32LE(e*4)),this._instructions[e]=t),t}get lines(){let e=[];for(let t=0;t<this.instruction_count;t++)e[t]=this._instlines.readUInt32LE(t*4);return e}walk_functions(e){e(this),this.inner_functions.forEach(t=>t.walk_functions(e))}getFunctionAtStartLine(e){if(this.firstline===e)return this;if(this.firstline<e&&(this.lastline===0||this.lastline>e)&&this.inner_functions)for(let t=0;t<this.inner_functions.length;t++){let n=this.inner_functions[t].getFunctionAtStartLine(e);if(n)return n}}getInstructionsAtBase(e,t){if(!(t===0||!this._baseAddr)&&this._baseAddr<=e&&this._baseAddr+this.instruction_count>e){let n=e-this._baseAddr,i=[];n+t>this.instruction_count&&(t=this.instruction_count-n);for(let s=0;s<t;s++){let u=this.instruction(s+n);i.push({address:"0x"+(this._baseAddr+n+s).toString(16),instruction:this.getInstructionLabel(s+n),line:u.line,instructionBytes:u.raw.toString(16).padStart(8,"0"),symbol:s+n===0?this.source+":"+this.firstline:void 0})}return i}}getInstructionLabel(e){let t=this.instruction(e);if(!t)throw new Error("Invalid PC");let n=this.instruction(e+1);switch(t.Op){case 1:return`LOADK ${this.getRegisterLabel(e,t.A)} := ${this.constants[t.Bx].label}`;case 2:if(!n)throw new Error("Invalid PC");return`LOADKX ${this.getRegisterLabel(e,t.A)} := ${this.constants[n.Ax].label}`;case 3:return`LOADBOOL ${this.getRegisterLabel(e,t.A)} := ${t.B!==0}${t.C!==0?" pc++":""}`;case 4:return`LOADNIL ${this.getRegisterLabel(e,t.A)}...${this.getRegisterLabel(e,t.A+t.B)})`;case 5:return`GETUPVAL ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}`;case 6:return`GETTABUP ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 7:return`GETTABLE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 8:return`SETTABUP ${this.getUpvalLabel(t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 9:return`SETUPVAL ${this.getUpvalLabel(t.B)} := ${this.getRegisterLabel(e,t.A)}`;case 10:return`SETTABLE ${this.getRegisterLabel(e,t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 11:{let f=t.B,d=this.fb2int(f),c=t.C,p=this.fb2int(c),_=f===d?`${d}`:`${f}->${d}`,b=c===p?`${p}`:`${c}->${p}`;return`NEWTABLE ${this.getRegisterLabel(e,t.A)} := {} size(${_},${b})`}case 12:return`SELF ${this.getRegisterLabel(e,t.A+1)} := ${this.getRegisterLabel(e,t.B)}; ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 13:return`ADD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} + ${this.getRegisterOrConstantLabel(e,t.C)}`;case 14:return`SUB ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} - ${this.getRegisterOrConstantLabel(e,t.C)}`;case 15:return`MUL ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} * ${this.getRegisterOrConstantLabel(e,t.C)}`;case 16:return`DIV ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} / ${this.getRegisterOrConstantLabel(e,t.C)}`;case 17:return`MOD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} % ${this.getRegisterOrConstantLabel(e,t.C)}`;case 18:return`POW ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} ^ ${this.getRegisterOrConstantLabel(e,t.C)}`;case 0:return`MOVE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}`;case 19:return`UNM ${this.getRegisterLabel(e,t.A)} := -${this.getRegisterLabel(e,t.B)}`;case 20:return`NOT ${this.getRegisterLabel(e,t.A)} := not ${this.getRegisterLabel(e,t.B)}`;case 21:return`LEN ${this.getRegisterLabel(e,t.A)} := length of ${this.getRegisterLabel(e,t.B)}`;case 22:return`CONCAT ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}.. ... ..${this.getRegisterLabel(e,t.C)}`;case 23:return`JMP pc+=${t.sBx}${t.A?`; close >= ${t.A-1}`:""}`;case 24:return`EQ if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?"~=":"=="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 25:return`LT if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">=":"<"} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 26:return`LE if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">":"<="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 27:return`TEST if ${t.C?"not ":""}${this.getRegisterLabel(e,t.A)} then pc++`;case 28:return`TESTSET if ${t.C?"":"not "}${this.getRegisterLabel(e,t.A)} then ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)} else pc++`;case 29:return`CALL ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args ${t.C?t.C-1:"var"} returns)`;case 30:return`TAILCALL return ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args)`;case 31:return`RETURN return ${t.B?t.B-1:"var"} results ${t.B>1?`starting at ${this.getRegisterLabel(e,t.A)}`:""}`;case 32:return`FORLOOP ${this.getRegisterLabel(e,t.A)} += ${this.getRegisterLabel(e,t.A+2)}; if ${this.getRegisterLabel(e,t.A)} <= ${this.getRegisterLabel(e,t.A+1)} then { pc+=${t.sBx}; ${this.getRegisterLabel(e,t.A+3)} := ${this.getRegisterLabel(e,t.A)} }`;case 33:return`FORPREP ${this.getRegisterLabel(e,t.A)} -= ${this.getRegisterLabel(e,t.A+2)}; pc += ${t.sBx}`;case 34:return`TFORCALL ${this.getRegisterLabel(e,t.A+3)}...${this.getRegisterLabel(e,t.A+2+t.C)} := ${this.getRegisterLabel(e,t.A)}(${this.getRegisterLabel(e,t.A+1)},${this.getRegisterLabel(e,t.A+2)})`;case 35:return`TFORLOOP if ${this.getRegisterLabel(e,t.A+1)} ~= nil then { ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.A+1)}; pc += ${t.sBx} }`;case 36:let i=t.C-1;if(!t.C){if(!n)throw new Error("Invalid PC");i=n.Ax-1}let s=50;return`SETLIST ${this.getRegisterLabel(e,t.A)}[${i*s+1}...${t.B?i*s+t.B:""}] := ${this.getRegisterLabel(e,t.A+1)}...${t.B?this.getRegisterLabel(e,t.A+t.B):"top"}`;case 37:let u=this.inner_functions[t.Bx];return`CLOSURE ${this.getRegisterLabel(e,t.A)} := closure(${u.source}:${u.firstline}-${u.lastline})`;case 38:return`VARARG ${this.getRegisterLabel(e,t.A)}...${t.B?this.getRegisterLabel(e,t.A+t.B-2):"top"}`;case 39:return"EXTRAARG";default:return`UNKNOWN OP(${t.Op}) A(${t.A}) B(${t.B}) C(${t.C})`}}fb2int(e){let t=e>>3&31;return t===0?e:(e&7)+8<<t-1}getRegisterOrConstantLabel(e,t){return t&256?this.constants[t&255].label:this.getRegisterLabel(e,t)}getUpvalLabel(e){return`Up(${this.upvals[e]?.name??e})`}getRegisterLabel(e,t){let n=0;for(let i=0;i<this.locals.length;i++){let s=this.locals[i];if(s.start<=e+1){if(s.end>=e+1){if(n===t)return`R(${s.name})`;n++}}else break}return`R(${t})`}};var ln=class extends D.StoppedEvent{constructor(e,t,n){super(e,t,n),this.body.allThreadsStopped=!0}},rs=class extends D.LoggingDebugSession{constructor(t,n,i){super();this.activeVersion=t;this.fs=n;this.editorInterface=i;this.objectInfoChunks=ho(Ur(this.activeVersion.docs.generate_debuginfo()),3500),this.setDebuggerLinesStartAt1(!0),this.setDebuggerColumnsStartAt1(!0),this.setDebuggerPathFormat("uri"),this.configDone=new Promise(s=>{this._configurationDone=s})}_configurationDone;configDone;nextBreakpointID=1;breakPoints=new Map;breakPointsChanged=new Set;exceptionFilters=new Set(["unhandled"]);_modules=new Map;_responses=new Map;_dumps=new Map;translations=new Map;buffers=new Map;nextRef=1;factorio;stdinQueue=[];launchArgs;inPrompt=0;pauseRequested=!1;workspaceModInfo=[];initializeRequest(t,n){t.body=t.body||{},t.body.supportsConditionalBreakpoints=!0,t.body.supportsHitConditionalBreakpoints=!0,t.body.supportsEvaluateForHovers=!0,t.body.exceptionBreakpointFilters=[{filter:"pcall",label:"Caught by pcall",default:!1},{filter:"xpcall",label:"Caught by xpcall",default:!1},{filter:"unhandled",label:"Unhandled Exceptions",default:!0}],t.body.supportsSetVariable=!0,t.body.supportsModulesRequest=!0,t.body.supportsLogPoints=!0,t.body.supportsConfigurationDoneRequest=!0,t.body.supportsLoadedSourcesRequest=!0,t.body.supportsBreakpointLocationsRequest=!0,t.body.supportsDisassembleRequest=!0,t.body.supportsSteppingGranularity=!0,t.body.supportsInstructionBreakpoints=!1,this.sendResponse(t)}configurationDoneRequest(t,n){super.configurationDoneRequest(t,n),this._configurationDone?.()}async terminateRequest(t,n){return this.sendResponse(t),this.terminate()}async disconnectRequest(t,n){return this.sendResponse(t),this.terminate()}async checkFactorioArgs(t){let n=t.factorioArgs;if(n){if(n.includes("--config"))return this.sendEvent(new D.OutputEvent(`Factorio --config option is set by configPath and should not be included in factorioArgs
3044
+ `),{start:Buffer.from([239,183,174]),end:Buffer.from([239,183,175])}],Ai=class extends Wd.EventEmitter{factorio;hasNativeDebug;constructor(e,t,n,i){super();let s={cwd:Vd.dirname(e),env:Object.assign({},process.env,i,{SteamAppId:"427520"})};n?(this.hasNativeDebug=!0,this.factorio=(0,Qa.spawn)(n,[e,...t],s)):this.factorio=(0,Qa.spawn)(e,t,s),this.factorio.on("exit",(...d)=>this.emit("exit",...d)),new kr(this.factorio.stderr,Sb).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stderr",d)}),new kr(this.factorio.stdout,Rb).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stdout",d)})}writeStdin(e){return this.factorio.stdin.write(e)}kill(){if(this.hasNativeDebug)this.factorio.pid&&(0,zd.default)(this.factorio.pid);else{this.factorio.kill();try{this.factorio.kill("SIGKILL")}catch{}}}};var Ja=Buffer.from([27,76,117,97,82,0,1,4,8,4,8,0,25,147,13,10,26,10]);function Ti(a,e){let t=a.readBigUInt64LE(e);e+=8;let n;return t>0?(n=a.subarray(e,e+Number(t)-1),e+=Number(t)):n=Buffer.alloc(0,0),[n,e]}var Za=class{constructor(e,t){this.raw=e;this.line=t}get Op(){return this.raw&63}get A(){return this.raw>>6&255}get B(){return this.raw>>23&511}get C(){return this.raw>>14&511}get Ax(){return this.raw>>6&67108863}get Bx(){return this.raw>>14&262143}get sBx(){return this.Bx-131071}},es=class{name;instack;idx;constructor(e,t){this.instack=e.readUInt8(t)!==0,this.idx=e.readUInt8(t+1)}},ts=class{name;start;end;dumpsize;constructor(e,t){let n;[n,t]=Ti(e,t),this.name=n.toString("utf8"),this.start=e.readUInt32LE(t),t+=4,this.end=e.readUInt32LE(t),t+=4,this.dumpsize=(n.length===0?8:8+n.length+1)+8}},Cr=class{constructor(e,t){this.type=e;this.value=t;switch(e){case 0:if(t!==void 0)throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 1:if(typeof t!="boolean")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 3:if(typeof t!="number")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 4:if(!(t instanceof Buffer))throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;default:throw new Error(`Invalid Lua Constant Type: ${e}`)}}get label(){switch(this.type){case 0:return"nil";case 1:case 3:return this.value.toString();case 4:return`"${this.value.toString("utf8")}"`;default:throw new Error(`Invalid Lua Constant Type: ${this.type} ${this.value}`)}}},ki=class a{source;nparam;is_vararg;maxstack;locals=[];upvals=[];instruction_count;_instraw;_instlines;constants=[];inner_functions=[];firstline;lastline;nextbyte;constructor(e,t){if(t===void 0){if(!e.subarray(0,Ja.length).equals(Ja))throw new Error("Invalid Header");t=Ja.length}this.firstline=e.readUInt32LE(t),t+=4,this.lastline=e.readUInt32LE(t),t+=4,this.nparam=e[t++],this.is_vararg=e[t++]!==0,this.maxstack=e[t++],this.instruction_count=e.readUInt32LE(t),t+=4,this._instraw=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let n=e.readUInt32LE(t);t+=4;for(let c=0;c<n;c++){let p=e[t++];switch(p){case 0:this.constants.push(new Cr(0));break;case 1:this.constants.push(new Cr(1,e[t++]!==0));break;case 3:this.constants.push(new Cr(3,e.readDoubleLE(t))),t+=8;break;case 4:let _;[_,t]=Ti(e,t),this.constants.push(new Cr(4,_));break;default:throw new Error(`Invalid Lua Constant Type: ${p}`)}}let i=e.readUInt32LE(t);t+=4;for(let c=0;c<i;c++){let p=new a(e,t);t=p.nextbyte,this.inner_functions.push(p)}let s=e.readUInt32LE(t);t+=4;for(let c=0;c<s;c++)this.upvals.push(new es(e,t)),t+=2;{let c;[c,t]=Ti(e,t),this.source=c.toString("utf8")}let u=e.readUInt32LE(t);if(t+=4,u!==this.instruction_count)throw new Error("line info count mismatch");this._instlines=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let f=e.readUInt32LE(t);t+=4;for(let c=0;c<f;c++){let p=new ts(e,t);t+=p.dumpsize,this.locals.push(p)}let d=e.readUInt32LE(t);t+=4;for(let c=0;c<d;c++){let p;[p,t]=Ti(e,t),this.upvals[c].name=p.toString("utf8")}this.nextbyte=t}_baseAddr;get baseAddr(){return this._baseAddr}rebase(e){let t=e;return this._baseAddr=t,t+=this.instruction_count,this.inner_functions.forEach(n=>{t=n.rebase(t)}),t}_instructions=[];instruction(e){if(e>this.instruction_count-1)return;let t=this._instructions[e];return t===void 0&&(t=new Za(this._instraw.readUint32LE(e*4),this._instlines.readUint32LE(e*4)),this._instructions[e]=t),t}get lines(){let e=[];for(let t=0;t<this.instruction_count;t++)e[t]=this._instlines.readUInt32LE(t*4);return e}walk_functions(e){e(this),this.inner_functions.forEach(t=>t.walk_functions(e))}getFunctionAtStartLine(e){if(this.firstline===e)return this;if(this.firstline<e&&(this.lastline===0||this.lastline>e)&&this.inner_functions)for(let t=0;t<this.inner_functions.length;t++){let n=this.inner_functions[t].getFunctionAtStartLine(e);if(n)return n}}getInstructionsAtBase(e,t){if(!(t===0||!this._baseAddr)&&this._baseAddr<=e&&this._baseAddr+this.instruction_count>e){let n=e-this._baseAddr,i=[];n+t>this.instruction_count&&(t=this.instruction_count-n);for(let s=0;s<t;s++){let u=this.instruction(s+n);i.push({address:"0x"+(this._baseAddr+n+s).toString(16),instruction:this.getInstructionLabel(s+n),line:u.line,instructionBytes:u.raw.toString(16).padStart(8,"0"),symbol:s+n===0?this.source+":"+this.firstline:void 0})}return i}}getInstructionLabel(e){let t=this.instruction(e);if(!t)throw new Error("Invalid PC");let n=this.instruction(e+1);switch(t.Op){case 1:return`LOADK ${this.getRegisterLabel(e,t.A)} := ${this.constants[t.Bx].label}`;case 2:if(!n)throw new Error("Invalid PC");return`LOADKX ${this.getRegisterLabel(e,t.A)} := ${this.constants[n.Ax].label}`;case 3:return`LOADBOOL ${this.getRegisterLabel(e,t.A)} := ${t.B!==0}${t.C!==0?" pc++":""}`;case 4:return`LOADNIL ${this.getRegisterLabel(e,t.A)}...${this.getRegisterLabel(e,t.A+t.B)})`;case 5:return`GETUPVAL ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}`;case 6:return`GETTABUP ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 7:return`GETTABLE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 8:return`SETTABUP ${this.getUpvalLabel(t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 9:return`SETUPVAL ${this.getUpvalLabel(t.B)} := ${this.getRegisterLabel(e,t.A)}`;case 10:return`SETTABLE ${this.getRegisterLabel(e,t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 11:{let f=t.B,d=this.fb2int(f),c=t.C,p=this.fb2int(c),_=f===d?`${d}`:`${f}->${d}`,b=c===p?`${p}`:`${c}->${p}`;return`NEWTABLE ${this.getRegisterLabel(e,t.A)} := {} size(${_},${b})`}case 12:return`SELF ${this.getRegisterLabel(e,t.A+1)} := ${this.getRegisterLabel(e,t.B)}; ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 13:return`ADD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} + ${this.getRegisterOrConstantLabel(e,t.C)}`;case 14:return`SUB ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} - ${this.getRegisterOrConstantLabel(e,t.C)}`;case 15:return`MUL ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} * ${this.getRegisterOrConstantLabel(e,t.C)}`;case 16:return`DIV ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} / ${this.getRegisterOrConstantLabel(e,t.C)}`;case 17:return`MOD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} % ${this.getRegisterOrConstantLabel(e,t.C)}`;case 18:return`POW ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} ^ ${this.getRegisterOrConstantLabel(e,t.C)}`;case 0:return`MOVE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}`;case 19:return`UNM ${this.getRegisterLabel(e,t.A)} := -${this.getRegisterLabel(e,t.B)}`;case 20:return`NOT ${this.getRegisterLabel(e,t.A)} := not ${this.getRegisterLabel(e,t.B)}`;case 21:return`LEN ${this.getRegisterLabel(e,t.A)} := length of ${this.getRegisterLabel(e,t.B)}`;case 22:return`CONCAT ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}.. ... ..${this.getRegisterLabel(e,t.C)}`;case 23:return`JMP pc+=${t.sBx}${t.A?`; close >= ${t.A-1}`:""}`;case 24:return`EQ if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?"~=":"=="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 25:return`LT if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">=":"<"} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 26:return`LE if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">":"<="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 27:return`TEST if ${t.C?"not ":""}${this.getRegisterLabel(e,t.A)} then pc++`;case 28:return`TESTSET if ${t.C?"":"not "}${this.getRegisterLabel(e,t.A)} then ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)} else pc++`;case 29:return`CALL ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args ${t.C?t.C-1:"var"} returns)`;case 30:return`TAILCALL return ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args)`;case 31:return`RETURN return ${t.B?t.B-1:"var"} results ${t.B>1?`starting at ${this.getRegisterLabel(e,t.A)}`:""}`;case 32:return`FORLOOP ${this.getRegisterLabel(e,t.A)} += ${this.getRegisterLabel(e,t.A+2)}; if ${this.getRegisterLabel(e,t.A)} <= ${this.getRegisterLabel(e,t.A+1)} then { pc+=${t.sBx}; ${this.getRegisterLabel(e,t.A+3)} := ${this.getRegisterLabel(e,t.A)} }`;case 33:return`FORPREP ${this.getRegisterLabel(e,t.A)} -= ${this.getRegisterLabel(e,t.A+2)}; pc += ${t.sBx}`;case 34:return`TFORCALL ${this.getRegisterLabel(e,t.A+3)}...${this.getRegisterLabel(e,t.A+2+t.C)} := ${this.getRegisterLabel(e,t.A)}(${this.getRegisterLabel(e,t.A+1)},${this.getRegisterLabel(e,t.A+2)})`;case 35:return`TFORLOOP if ${this.getRegisterLabel(e,t.A+1)} ~= nil then { ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.A+1)}; pc += ${t.sBx} }`;case 36:let i=t.C-1;if(!t.C){if(!n)throw new Error("Invalid PC");i=n.Ax-1}let s=50;return`SETLIST ${this.getRegisterLabel(e,t.A)}[${i*s+1}...${t.B?i*s+t.B:""}] := ${this.getRegisterLabel(e,t.A+1)}...${t.B?this.getRegisterLabel(e,t.A+t.B):"top"}`;case 37:let u=this.inner_functions[t.Bx];return`CLOSURE ${this.getRegisterLabel(e,t.A)} := closure(${u.source}:${u.firstline}-${u.lastline})`;case 38:return`VARARG ${this.getRegisterLabel(e,t.A)}...${t.B?this.getRegisterLabel(e,t.A+t.B-2):"top"}`;case 39:return"EXTRAARG";default:return`UNKNOWN OP(${t.Op}) A(${t.A}) B(${t.B}) C(${t.C})`}}fb2int(e){let t=e>>3&31;return t===0?e:(e&7)+8<<t-1}getRegisterOrConstantLabel(e,t){return t&256?this.constants[t&255].label:this.getRegisterLabel(e,t)}getUpvalLabel(e){return`Up(${this.upvals[e]?.name??e})`}getRegisterLabel(e,t){let n=0;for(let i=0;i<this.locals.length;i++){let s=this.locals[i];if(s.start<=e+1){if(s.end>=e+1){if(n===t)return`R(${s.name})`;n++}}else break}return`R(${t})`}};var ln=class extends D.StoppedEvent{constructor(e,t,n){super(e,t,n),this.body.allThreadsStopped=!0}},rs=class extends D.LoggingDebugSession{constructor(t,n,i){super();this.activeVersion=t;this.fs=n;this.editorInterface=i;this.objectInfoChunks=ho(jr(this.activeVersion.docs.generate_debuginfo()),3500),this.setDebuggerLinesStartAt1(!0),this.setDebuggerColumnsStartAt1(!0),this.setDebuggerPathFormat("uri"),this.configDone=new Promise(s=>{this._configurationDone=s})}_configurationDone;configDone;nextBreakpointID=1;breakPoints=new Map;breakPointsChanged=new Set;exceptionFilters=new Set(["unhandled"]);_modules=new Map;_responses=new Map;_dumps=new Map;translations=new Map;buffers=new Map;nextRef=1;factorio;stdinQueue=[];launchArgs;inPrompt=0;pauseRequested=!1;workspaceModInfo=[];initializeRequest(t,n){t.body=t.body||{},t.body.supportsConditionalBreakpoints=!0,t.body.supportsHitConditionalBreakpoints=!0,t.body.supportsEvaluateForHovers=!0,t.body.exceptionBreakpointFilters=[{filter:"pcall",label:"Caught by pcall",default:!1},{filter:"xpcall",label:"Caught by xpcall",default:!1},{filter:"unhandled",label:"Unhandled Exceptions",default:!0}],t.body.supportsSetVariable=!0,t.body.supportsModulesRequest=!0,t.body.supportsLogPoints=!0,t.body.supportsConfigurationDoneRequest=!0,t.body.supportsLoadedSourcesRequest=!0,t.body.supportsBreakpointLocationsRequest=!0,t.body.supportsDisassembleRequest=!0,t.body.supportsSteppingGranularity=!0,t.body.supportsInstructionBreakpoints=!1,this.sendResponse(t)}configurationDoneRequest(t,n){super.configurationDoneRequest(t,n),this._configurationDone?.()}async terminateRequest(t,n){return this.sendResponse(t),this.terminate()}async disconnectRequest(t,n){return this.sendResponse(t),this.terminate()}async checkFactorioArgs(t){let n=t.factorioArgs;if(n){if(n.includes("--config"))return this.sendEvent(new D.OutputEvent(`Factorio --config option is set by configPath and should not be included in factorioArgs
2970
3045
  `,"console")),!1;if(n.includes("--mod-directory"))return this.sendEvent(new D.OutputEvent(`Factorio --mod-directory option is set by modsPath and should not be included in factorioArgs
2971
3046
  `,"console")),!1}return!0}async resolveModsPath(t){let n;if(t.modsPath){n="launch";let i=_t.posix.normalize(t.modsPath);i.match(/^~[\\\/]/)&&(i=_t.posix.join(or.homedir().replace(/\\/g,"/"),i.replace(/^~[\\\/]/,""))),i.match(/[\\\/]$/)&&(i=i.replace(/[\\\/]+$/,""));try{await Hd.access(i),t.modsPath=i}catch{return this.sendEvent(new D.OutputEvent(`modsPath specified in launch configuration does not exist
2972
3047
  `,"console")),!1}}else{let i=await this.editorInterface.findWorkspaceFiles("**/mod-list.json");if(i.length===1)t.modsPath=_t.dirname(i[0].fsPath),n="workspace";else{if(i.length>1)return this.sendEvent(new D.OutputEvent(`multiple mod-list.json in workspace, please specify one as modsPath
@@ -2979,40 +3054,40 @@ ${i}`)?.join(`
2979
3054
  `,"console")),this.sendEvent(new D.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}let i=await this.editorInterface.findWorkspaceFiles("**/info.json");await Promise.all(i.map(this.updateInfoJson,this)),this.sendEvent(new D.OutputEvent(`Checking Factorio Version...
2980
3055
  `,"console"));let s;try{s=await this.activeVersion.getBinaryVersion(),this.sendEvent(new D.OutputEvent(`Factorio ${s}
2981
3056
  `,"console"))}catch(b){this.sendEvent(new D.OutputEvent(`Error reading Factorio Version: ${b}
2982
- `,"console")),this.sendEvent(new D.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}if(n.noDebug||((n.useInstrumentMode??!0)&&n.factorioArgs.push("--instrument-mod","debugadapter"),un.gte(s,"1.1.107",{loose:!0})&&n.factorioArgs.push("--enable-unsafe-lua-debug-api"),(n.checkPrototypes??!0)&&!n.factorioArgs.includes("--check-unused-prototype-data")&&n.factorioArgs.push("--check-unused-prototype-data")),this.activeVersion.configPathIsOverriden()&&n.factorioArgs.push("--config",await this.activeVersion.configPath()),n.adjustModSettings){let b=Ye.joinPath(xe.file(n.modsPath),"mod-settings.dat"),g=new Yr(new ar(await this.fs.readFile(b)));for(let y of n.adjustModSettings)if(y.value===void 0)g.set(y.scope,y.name);else switch(typeof y.value){case"string":g.set(y.scope,y.name,{type:"string",value:y.value});break;case"number":g.set(y.scope,y.name,{type:"number",value:y.value});break;case"boolean":g.set(y.scope,y.name,{type:"bool",value:y.value});break}await this.fs.writeFile(b,g.save())}this.factorio=new Ai(this.activeVersion.factorioPath,n.factorioArgs,this.activeVersion.nativeDebugger,n.env),this.factorio.on("exit",(b,g)=>{b&&this.sendEvent(new D.Event("exited",{exitCode:b})),this.sendEvent(new D.TerminatedEvent)});let u,f=new Promise(b=>{u=b});this.factorio.on("stderr",b=>{let g=b.toString();g&&this.sendEvent(new D.OutputEvent(g+`
2983
- `,"stderr"))});let d=(b,g)=>{switch(typeof g){case"string":switch(g.charCodeAt(0)){case 64976:return _t.basename(g.slice(1));case 64977:return this.convertDebuggerPathToClient(g.slice(1));case 64978:return this.convertDebuggerLineToClient(Number.parseInt(g.slice(1)));case 64980:{let y=Number.parseInt(g.slice(1));return this.translations.get(y)??`{Missing Translation ID ${y}}`}case 64981:{let y=Number.parseInt(g.slice(1));return this.buffers.get(y)??`{Missing Buffer ID ${y}}`}}}return g},c=b=>{let g=b.indexOf(1,3),y=Number.parseInt(b.subarray(3,g).toString().trim()),S=b.subarray(g+1),A=[],P=S.indexOf(239);for(;P>=0;){if(S[P+1]>=160&&S[P+1]<=163&&S[P+2]>=128&&S[P+2]<=191){let Q=S.subarray(P,P+4).toString("utf8").charCodeAt(0)-63488;A.push(S.subarray(0,P),Buffer.from([Q])),S=S.subarray(P+3)}else A.push(S.subarray(0,P+1)),S=S.subarray(P+1);P=S.indexOf(239)}A.push(S);let L=Buffer.concat(A);this.buffers.set(y,L)},p=async b=>{if(b[2]===151){c(b);return}let g=b.toString();switch(g.charCodeAt(0)){case 64976:switch(this.inPrompt++,g.charCodeAt(1)){case 57344:await f,this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#settings"):this.continueRequire(this.launchArgs.hookSettings??!1,"#settings");return;case 57345:this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#data"):this.continueRequire(this.launchArgs.hookData??!1,"#data");return;case 57346:{let y=g.slice(2).trim();this.clearQueuedStdin();let S=this.launchArgs.hookControl??!0,A=y==="debugadapter"?Array.isArray(S)&&S.includes(y):S!==!1&&(S===!0||S.includes(y));this.launchArgs.hookMode==="profile"?this.continueProfile(A):this.launchArgs.hookMode==="profile2"?this.continueProfile(A,2):this.continueRequire(A,y);return}case 57347:{let y=this.launchArgs.hookControl??!0,S=Array.isArray(y)&&y.includes("debugadapter")||y===!1;this.launchArgs.hookMode==="profile"?this.continueProfile(!S):this.launchArgs.hookMode==="profile2"?this.continueProfile(!S,2):this.continueRequire(!1,"debugadapter");return}case 57348:this.sendClassData(),this.writeStdin("cont"),this.inPrompt--;return;case 57349:this.allocateRefBlock(),this.continue();return;case 57351:await this.configDone;case 57352:this.clearQueuedStdin(),this.allocateRefBlock(),this.continue(!0);return;case 57350:case 57353:case 57354:await this.runQueuedStdin(),this.continue(!0);return;case 57356:await this.terminate();return;default:return}case 64977:{this.inPrompt++;let y=JSON.parse(g.slice(1),d);switch(y.event){case"source":let S=this.loadedSourceEvent(y.body),A=y.body.source;this.breakPoints.has(A.sourceReference??A.name)&&await S,this.continue();return;case"running":await this.runQueuedStdin(),this.pauseRequested?(this.pauseRequested=!1,this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new ln("pause",y.body.threadId))):this.continue();return;case"exception":await this.runQueuedStdin(),y.body.filter==="manual"||this.exceptionFilters.has(y.body.filter)?this.sendEvent(new ln("exception",y.body.threadId,y.body.mesg)):this.continue();return;case"stopped":await this.runQueuedStdin(),this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new ln(y.body.reason,y.body.threadId));return;default:return}}case 64980:{let y=g.indexOf(""),S=Number.parseInt(g.slice(1,y).trim()),A=g.slice(y+1);this.translations.set(S,A);return}case 64981:{let y=JSON.parse(g.slice(1),d);switch(y.event){case"modules":await this.updateModules(y.body),u(),this.sendEvent(new D.InitializedEvent);return;case"output":{let S=y;S.body.output.endsWith(`
3057
+ `,"console")),this.sendEvent(new D.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}if(n.noDebug||((n.useInstrumentMode??!0)&&n.factorioArgs.push("--instrument-mod","debugadapter"),un.gte(s,"1.1.107",{loose:!0})&&n.factorioArgs.push("--enable-unsafe-lua-debug-api"),(n.checkPrototypes??!0)&&!n.factorioArgs.includes("--check-unused-prototype-data")&&n.factorioArgs.push("--check-unused-prototype-data")),this.activeVersion.configPathIsOverriden()&&n.factorioArgs.push("--config",await this.activeVersion.configPath()),n.adjustModSettings){let b=Xe.joinPath(xe.file(n.modsPath),"mod-settings.dat"),g=new Xr(new ar(await this.fs.readFile(b)));for(let y of n.adjustModSettings)if(y.value===void 0)g.set(y.scope,y.name);else switch(typeof y.value){case"string":g.set(y.scope,y.name,{type:"string",value:y.value});break;case"number":g.set(y.scope,y.name,{type:"number",value:y.value});break;case"boolean":g.set(y.scope,y.name,{type:"bool",value:y.value});break}await this.fs.writeFile(b,g.save())}this.factorio=new Ai(this.activeVersion.factorioPath,n.factorioArgs,this.activeVersion.nativeDebugger,n.env),this.factorio.on("exit",(b,g)=>{b&&this.sendEvent(new D.Event("exited",{exitCode:b})),this.sendEvent(new D.TerminatedEvent)});let u,f=new Promise(b=>{u=b});this.factorio.on("stderr",b=>{let g=b.toString();g&&this.sendEvent(new D.OutputEvent(g+`
3058
+ `,"stderr"))});let d=(b,g)=>{switch(typeof g){case"string":switch(g.charCodeAt(0)){case 64976:return _t.basename(g.slice(1));case 64977:return this.convertDebuggerPathToClient(g.slice(1));case 64978:return this.convertDebuggerLineToClient(Number.parseInt(g.slice(1)));case 64980:{let y=Number.parseInt(g.slice(1));return this.translations.get(y)??`{Missing Translation ID ${y}}`}case 64981:{let y=Number.parseInt(g.slice(1));return this.buffers.get(y)??`{Missing Buffer ID ${y}}`}}}return g},c=b=>{let g=b.indexOf(1,3),y=Number.parseInt(b.subarray(3,g).toString().trim()),S=b.subarray(g+1),A=[],E=S.indexOf(239);for(;E>=0;){if(S[E+1]>=160&&S[E+1]<=163&&S[E+2]>=128&&S[E+2]<=191){let Q=S.subarray(E,E+4).toString("utf8").charCodeAt(0)-63488;A.push(S.subarray(0,E),Buffer.from([Q])),S=S.subarray(E+3)}else A.push(S.subarray(0,E+1)),S=S.subarray(E+1);E=S.indexOf(239)}A.push(S);let L=Buffer.concat(A);this.buffers.set(y,L)},p=async b=>{if(b[2]===151){c(b);return}let g=b.toString();switch(g.charCodeAt(0)){case 64976:switch(this.inPrompt++,g.charCodeAt(1)){case 57344:await f,this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#settings"):this.continueRequire(this.launchArgs.hookSettings??!1,"#settings");return;case 57345:this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#data"):this.continueRequire(this.launchArgs.hookData??!1,"#data");return;case 57346:{let y=g.slice(2).trim();this.clearQueuedStdin();let S=this.launchArgs.hookControl??!0,A=y==="debugadapter"?Array.isArray(S)&&S.includes(y):S!==!1&&(S===!0||S.includes(y));this.launchArgs.hookMode==="profile"?this.continueProfile(A):this.launchArgs.hookMode==="profile2"?this.continueProfile(A,2):this.continueRequire(A,y);return}case 57347:{let y=this.launchArgs.hookControl??!0,S=Array.isArray(y)&&y.includes("debugadapter")||y===!1;this.launchArgs.hookMode==="profile"?this.continueProfile(!S):this.launchArgs.hookMode==="profile2"?this.continueProfile(!S,2):this.continueRequire(!1,"debugadapter");return}case 57348:this.sendClassData(),this.writeStdin("cont"),this.inPrompt--;return;case 57349:this.allocateRefBlock(),this.continue();return;case 57351:await this.configDone;case 57352:this.clearQueuedStdin(),this.allocateRefBlock(),this.continue(!0);return;case 57350:case 57353:case 57354:await this.runQueuedStdin(),this.continue(!0);return;case 57356:await this.terminate();return;default:return}case 64977:{this.inPrompt++;let y=JSON.parse(g.slice(1),d);switch(y.event){case"source":let S=this.loadedSourceEvent(y.body),A=y.body.source;this.breakPoints.has(A.sourceReference??A.name)&&await S,this.continue();return;case"running":await this.runQueuedStdin(),this.pauseRequested?(this.pauseRequested=!1,this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new ln("pause",y.body.threadId))):this.continue();return;case"exception":await this.runQueuedStdin(),y.body.filter==="manual"||this.exceptionFilters.has(y.body.filter)?this.sendEvent(new ln("exception",y.body.threadId,y.body.mesg)):this.continue();return;case"stopped":await this.runQueuedStdin(),this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new ln(y.body.reason,y.body.threadId));return;default:return}}case 64980:{let y=g.indexOf(""),S=Number.parseInt(g.slice(1,y).trim()),A=g.slice(y+1);this.translations.set(S,A);return}case 64981:{let y=JSON.parse(g.slice(1),d);switch(y.event){case"modules":await this.updateModules(y.body),u(),this.sendEvent(new D.InitializedEvent);return;case"output":{let S=y;S.body.output.endsWith(`
2984
3059
  `)||(S.body.output+=`
2985
3060
  `),this.sendEvent(S);return}default:return}}case 64982:{let y=JSON.parse(g.slice(1),d);this._responses.get(y.seq)(y.body),this._responses.delete(y.seq);return}case 64984:{this.sendEvent(new D.InvalidatedEvent);return}}},_=b=>{switch(b.toString("utf8").charCodeAt(0)){case 64992:case 64993:case 64994:case 64995:return}};this.factorio.on("stdout",async b=>{if(b[0]===239&&b[1]===183)switch(b[2]){case 144:case 145:case 148:case 149:case 150:case 151:case 152:await p(b);return;case 160:case 161:case 162:case 163:_(b);return;case 173:this.sendEvent(new D.Event("x-Factorio-Profile",b.toString().slice(1)));return}b.toString()&&this.sendEvent(new D.OutputEvent(b.toString()+`
2986
- `,"stdout"))}),this.sendResponse(t)}allocateRefBlock(){let t=this.nextRef;this.nextRef+=4096,this.writeStdin(`__DebugAdapter.__dap.transferRef(${t})`)}convertClientPathToDebugger(t){if(t=xe.parse(super.convertClientPathToDebugger(t)).toString(),t.startsWith("output:"))return t;let n;return this._modules.forEach(i=>{i.symbolFilePath&&t.startsWith(i.symbolFilePath)&&i.symbolFilePath.length>(n?.symbolFilePath||"").length&&(n=i)}),n?.name==="#user"&&t.startsWith(n.symbolFilePath+"/mods")&&(n=void 0),n?t.replace(n.symbolFilePath,"@__"+n.name+"__"):t}convertDebuggerPathToClient(t){let n=t.match(/^@__(.*?)__\/(.*)$/);if(n){let i=this._modules.get(n[1]);if(i?.symbolFilePath)return super.convertDebuggerPathToClient(Ye.joinPath(xe.parse(i.symbolFilePath),n[2]).toString())}return t}async customRequest(t,n,i,s){switch(t){case"x-Factorio-ConvertPath":n.body=this.convertDebuggerPathToClient(i.path);break;case"modules":return this.modulesRequest(n,i);default:n.success=!1,n.message="Unknown request";break}this.sendResponse(n)}setBreakPointsRequest(t,n){let i;if(n.source.path){let d=n.source.path;i=this.convertClientPathToDebugger(d)}else i=`&ref ${n.source.sourceReference}`;let s=this.lines_by_source.get(n.source.sourceReference??i),u=this.breakPoints.get(i)??[],f=(n.breakpoints??[]).map(d=>{d.line=this.convertClientLineToDebugger(d.line);let c=u.find(_=>d.line===_.line&&d.column===_.column);if(c)return c.condition=d.condition,c.hitCondition=d.hitCondition,c.logMessage=d.logMessage,c;let p=!1;if(s){let _=0;for(let b of s){if(b>=d.line){d.line=b,p=!0;break}b>_&&(_=b)}!p&&_>0&&(d.line=_,p=!0)}return Object.assign(d,{id:this.nextBreakpointID++,verified:p})});this.breakPoints.set(i,f),this.breakPointsChanged.add(i),t.body={breakpoints:f},this.sendResponse(t)}revalidateBreakpoints(t){let n=typeof t=="number"?`&ref ${t}`:t,i=this.breakPoints.get(n);if(!i)return;this.breakPointsChanged.add(n);let s=this.lines_by_source.get(t);for(let u of i){let f=0;for(let d of s){if(d>=u.line){u.line=d,u.verified=!0,this.sendEvent(new D.BreakpointEvent("changed",u));break}d>f&&(f=d)}!u.verified&&f>0&&(u.line=f,u.verified=!0,this.sendEvent(new D.BreakpointEvent("changed",u)))}}async threadsRequest(t){this.inPrompt>0?(t.body=await new Promise(n=>{this._responses.set(t.request_seq,n),this.writeStdin(`__DebugAdapter.__dap.threads(${t.request_seq})
3061
+ `,"stdout"))}),this.sendResponse(t)}allocateRefBlock(){let t=this.nextRef;this.nextRef+=4096,this.writeStdin(`__DebugAdapter.__dap.transferRef(${t})`)}convertClientPathToDebugger(t){if(t=xe.parse(super.convertClientPathToDebugger(t)).toString(),t.startsWith("output:"))return t;let n;return this._modules.forEach(i=>{i.symbolFilePath&&t.startsWith(i.symbolFilePath)&&i.symbolFilePath.length>(n?.symbolFilePath||"").length&&(n=i)}),n?.name==="#user"&&t.startsWith(n.symbolFilePath+"/mods")&&(n=void 0),n?t.replace(n.symbolFilePath,"@__"+n.name+"__"):t}convertDebuggerPathToClient(t){let n=t.match(/^@__(.*?)__\/(.*)$/);if(n){let i=this._modules.get(n[1]);if(i?.symbolFilePath)return super.convertDebuggerPathToClient(Xe.joinPath(xe.parse(i.symbolFilePath),n[2]).toString())}return t}async customRequest(t,n,i,s){switch(t){case"x-Factorio-ConvertPath":n.body=this.convertDebuggerPathToClient(i.path);break;case"modules":return this.modulesRequest(n,i);default:n.success=!1,n.message="Unknown request";break}this.sendResponse(n)}setBreakPointsRequest(t,n){let i;if(n.source.path){let d=n.source.path;i=this.convertClientPathToDebugger(d)}else i=`&ref ${n.source.sourceReference}`;let s=this.lines_by_source.get(n.source.sourceReference??i),u=this.breakPoints.get(i)??[],f=(n.breakpoints??[]).map(d=>{d.line=this.convertClientLineToDebugger(d.line);let c=u.find(_=>d.line===_.line&&d.column===_.column);if(c)return c.condition=d.condition,c.hitCondition=d.hitCondition,c.logMessage=d.logMessage,c;let p=!1;if(s){let _=0;for(let b of s){if(b>=d.line){d.line=b,p=!0;break}b>_&&(_=b)}!p&&_>0&&(d.line=_,p=!0)}return Object.assign(d,{id:this.nextBreakpointID++,verified:p})});this.breakPoints.set(i,f),this.breakPointsChanged.add(i),t.body={breakpoints:f},this.sendResponse(t)}revalidateBreakpoints(t){let n=typeof t=="number"?`&ref ${t}`:t,i=this.breakPoints.get(n);if(!i)return;this.breakPointsChanged.add(n);let s=this.lines_by_source.get(t);for(let u of i){let f=0;for(let d of s){if(d>=u.line){u.line=d,u.verified=!0,this.sendEvent(new D.BreakpointEvent("changed",u));break}d>f&&(f=d)}!u.verified&&f>0&&(u.line=f,u.verified=!0,this.sendEvent(new D.BreakpointEvent("changed",u)))}}async threadsRequest(t){this.inPrompt>0?(t.body=await new Promise(n=>{this._responses.set(t.request_seq,n),this.writeStdin(`__DebugAdapter.__dap.threads(${t.request_seq})
2987
3062
  `)}),this.sendResponse(t)):this.sendErrorResponse(t,{format:"threads not ready now",id:817})}async stackTraceRequest(t,n){let i=typeof n.startFrame=="number"?n.startFrame:0,s=await new Promise(u=>{this._responses.set(t.request_seq,u),this.writeStdin(`__DebugAdapter.__dap.stackTrace(${n.threadId},${i},${t.request_seq})
2988
3063
  `)});t.body={stackFrames:s.map(u=>{if(u&&u.source){u.source.path&&(u.source.path=this.convertDebuggerPathToClient(u.source.path));let f=u.source.sourceReference??u.source.name;if(f){let d=this.dumps_by_source.get(f)?.get(u.linedefined);d&&d.baseAddr&&(u.instructionPointerReference="0x"+(d.baseAddr+u.currentpc).toString(16))}}return u})},this.sendResponse(t)}async modulesRequest(t,n){let i=Array.from(this._modules.values());t.body={modules:i},this.sendResponse(t)}async scopesRequest(t,n){let i=new Promise(s=>{this._responses.set(t.request_seq,s),this.writeStdin(`__DebugAdapter.__dap.scopes(${n.frameId}, ${t.request_seq})
2989
3064
  `)});t.body={scopes:await i},this.sendResponse(t)}async variablesRequest(t,n,i){let s,u=new Promise(c=>s=c),f=new AbortController,d=await Promise.race([new Promise(async c=>{this._responses.set(t.request_seq,c),await this.writeOrQueueStdin(`__DebugAdapter.__dap.variables(${n.variablesReference},${t.request_seq},${n.filter?`"${n.filter}"`:"nil"},${n.start||"nil"},${n.count||"nil"})
2990
- `,u,f.signal)||(this._responses.delete(t.request_seq),s(),c([{name:"",value:`Expired variablesReference ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}]))}),new Promise(c=>{setTimeout(()=>{f.abort(),c([{name:"",value:`No Lua State Available ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}])},this.launchArgs.runningTimeout??2e3)})]);s(),t.body={variables:d},d.length===1&&d[0].type==="error"&&(t.success=!1,t.message=d[0].value),this.sendResponse(t)}async setVariableRequest(t,n,i){let s=await new Promise(u=>{this._responses.set(t.request_seq,u),this.writeStdin(`__DebugAdapter.__dap.setVariable(${n.variablesReference},${It(Buffer.from(n.name))},${It(Buffer.from(n.value))},${t.request_seq})
2991
- `)});s.type==="error"?(t.success=!1,t.message=s.value):t.body=s,this.sendResponse(t)}async evaluateRequest(t,n,i){let s,u=new Promise(g=>s=g),f=new AbortController,d=n.expression.match(/^__(.+?)__ (.*)$/),c;d&&(c=d[1],n.expression=d[2]);let p=c?It(Buffer.from(c)):n.frameId?n.frameId:"nil",_=It(Buffer.from(n.expression.replace(/\n/g," "))),b=await Promise.race([new Promise(async g=>{this._responses.set(t.request_seq,g),await this.writeOrQueueStdin(`__DebugAdapter.__dap.evaluate(${p},"${n.context}",${_},${t.request_seq})
3065
+ `,u,f.signal)||(this._responses.delete(t.request_seq),s(),c([{name:"",value:`Expired variablesReference ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}]))}),new Promise(c=>{setTimeout(()=>{f.abort(),c([{name:"",value:`No Lua State Available ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}])},this.launchArgs.runningTimeout??2e3)})]);s(),t.body={variables:d},d.length===1&&d[0].type==="error"&&(t.success=!1,t.message=d[0].value),this.sendResponse(t)}async setVariableRequest(t,n,i){let s=await new Promise(u=>{this._responses.set(t.request_seq,u),this.writeStdin(`__DebugAdapter.__dap.setVariable(${n.variablesReference},${Ct(Buffer.from(n.name))},${Ct(Buffer.from(n.value))},${t.request_seq})
3066
+ `)});s.type==="error"?(t.success=!1,t.message=s.value):t.body=s,this.sendResponse(t)}async evaluateRequest(t,n,i){let s,u=new Promise(g=>s=g),f=new AbortController,d=n.expression.match(/^__(.+?)__ (.*)$/),c;d&&(c=d[1],n.expression=d[2]);let p=c?Ct(Buffer.from(c)):n.frameId?n.frameId:"nil",_=Ct(Buffer.from(n.expression.replace(/\n/g," "))),b=await Promise.race([new Promise(async g=>{this._responses.set(t.request_seq,g),await this.writeOrQueueStdin(`__DebugAdapter.__dap.evaluate(${p},"${n.context}",${_},${t.request_seq})
2992
3067
  `,u,f.signal)||(this._responses.delete(t.request_seq),s(),g({result:`Expired evaluate seq=${t.request_seq}`,type:"error",variablesReference:0}))}),new Promise(g=>{setTimeout(()=>{f.abort(),g({result:`No Lua State Available seq=${t.request_seq}`,type:"error",variablesReference:0})},this.launchArgs.runningTimeout??2e3)})]);if(s(),b.type==="error"&&(t.success=!1,t.message=b.result),t.body=b,b.timer){let g=b.timer.replace(/^.*: /,"");b.result+=`
2993
3068
  \u23F1\uFE0F `+g}this.sendResponse(t)}continueRequest(t,n){this.writeStdin("__DebugAdapter.__dap.step_enabled(false)"),this.continue(),this.sendResponse(t)}pauseRequest(t,n,i){this.pauseRequested=!0,this.sendResponse(t)}step(t="in",n="statement"){let i={in:-1,over:0,out:1};this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.writeStdin("__DebugAdapter.__dap.step_enabled(true)"),this.writeStdin(`__DebugAdapter.__dap.step(${i[t]},${n==="instruction"})`),this.writeStdin("cont"),this.inPrompt--}nextRequest(t,n){this.step("over",n.granularity),this.sendResponse(t)}stepInRequest(t,n){this.step("in",n.granularity),this.sendResponse(t)}stepOutRequest(t,n){this.step("out",n.granularity),this.sendResponse(t)}setExceptionBreakPointsRequest(t,n,i){this.exceptionFilters.clear(),n.filters.forEach(s=>this.exceptionFilters.add(s)),this.sendResponse(t)}nextdump=1;dumps_by_source=new Map;dumps_by_address=[];lines_by_source=new Map;loadedSources=[];async loadedSourceEvent(t){let n=t.source;if(t.dump){let i=n.sourceReference??n.name,s;s=new ki(t.dump),this.nextdump=s.rebase(this.nextdump);let u=new Set,f=new Map;s.walk_functions(d=>{if(d.baseAddr){let c=this.dumps_by_address.findIndex(p=>d.baseAddr<p.baseAddr);c===-1?this.dumps_by_address.push(d):this.dumps_by_address.splice(c,0,d)}f.set(d.firstline,d),d.lines.forEach(c=>u.add(c))}),this.dumps_by_source.set(i,f),this.lines_by_source.set(i,Array.from(u).sort((d,c)=>d-c)),this.revalidateBreakpoints(i)}this.loadedSources.push(n),this.sendEvent(new D.LoadedSourceEvent("new",n))}async disassembleRequest(t,n,i){let s=parseInt(n.memoryReference),u=[];t.body={instructions:u};let f=s+(n.instructionOffset??0),d=n.instructionCount;for(;f<1;)u.push({address:"0x"+f.toString(16),instruction:"<no instruction>"}),f++,d--;let c=this.dumps_by_address.findIndex(p=>p.baseAddr&&p.baseAddr<f&&p.baseAddr+p.instruction_count>=f);do{let _=this.dumps_by_address[c].getInstructionsAtBase(f,d);_&&(u.push(..._),d-=_.length,f+=_.length),c++}while(d>0&&f<this.nextdump&&c<this.dumps_by_address.length);for(;d>0;)u.push({address:"0x"+f.toString(16),instruction:"<no instruction>"}),d--;this.nextdump+=d,this.sendResponse(t)}async breakpointLocationsRequest(t,n,i){let s=n.source.sourceReference??n.source.path;if(s){typeof s=="string"&&(s=this.convertClientPathToDebugger(s));let u=this.lines_by_source?.get(s);u&&(t.body={breakpoints:u.map(f=>({line:f})).filter(f=>f.line>=n.line&&f.line<=(n.endLine??n.line))})}this.sendResponse(t)}async loadedSourcesRequest(t,n,i){t.body={sources:this.loadedSources},this.sendResponse(t)}async sourceRequest(t,n){let i=n.source?.sourceReference;if(i){let s,u=new Promise(c=>s=c),f=new AbortController,d=await Promise.race([new Promise(async c=>{this._responses.set(t.request_seq,c),await this.writeOrQueueStdin(`__DebugAdapter.__dap.source(${i},${t.request_seq})
2994
- `,u,f.signal)||(this._dumps.delete(i),s(),c(`Expired source ref=${i}`))}),new Promise(c=>{setTimeout(()=>{f.abort(),c(`No Lua State Available ref=${i} seq=${t.request_seq}`)},this.launchArgs.runningTimeout??2e3)})]);s(),t.body={content:d??"Invalid Source ID"}}this.sendResponse(t)}async updateInfoJson(t){try{let n=t.path;or.platform()==="win32"&&n.startsWith("/")&&(n=n.substr(1));let i=Buffer.from(await this.fs.readFile(t)).toString("utf8");if(i){let s=JSON.parse(i);if(s){let u={uri:Ye.dirname(t),name:s.name,version:s.version,info:s};this.workspaceModInfo.push(u)}}}catch(n){this.sendEvent(new D.OutputEvent(`failed to read ${t} ${n}
2995
- `,"stderr"))}}objectInfoChunks;sendClassData(){for(let t of this.objectInfoChunks)this.writeStdin(Buffer.concat([Buffer.from("__DebugAdapter.loadObjectInfo("),It(t),Buffer.from(")")]));this.writeStdin("__DebugAdapter.loadObjectInfo()")}writeStdin(t){if(this.inPrompt<=0){this.sendEvent(new D.OutputEvent(`!! Attempted to writeStdin "${t instanceof Buffer?`Buffer[${t.length}]`:t}" while not in a prompt
3069
+ `,u,f.signal)||(this._dumps.delete(i),s(),c(`Expired source ref=${i}`))}),new Promise(c=>{setTimeout(()=>{f.abort(),c(`No Lua State Available ref=${i} seq=${t.request_seq}`)},this.launchArgs.runningTimeout??2e3)})]);s(),t.body={content:d??"Invalid Source ID"}}this.sendResponse(t)}async updateInfoJson(t){try{let n=t.path;or.platform()==="win32"&&n.startsWith("/")&&(n=n.substr(1));let i=Buffer.from(await this.fs.readFile(t)).toString("utf8");if(i){let s=JSON.parse(i);if(s){let u={uri:Xe.dirname(t),name:s.name,version:s.version,info:s};this.workspaceModInfo.push(u)}}}catch(n){this.sendEvent(new D.OutputEvent(`failed to read ${t} ${n}
3070
+ `,"stderr"))}}objectInfoChunks;sendClassData(){for(let t of this.objectInfoChunks)this.writeStdin(Buffer.concat([Buffer.from("__DebugAdapter.loadObjectInfo("),Ct(t),Buffer.from(")")]));this.writeStdin("__DebugAdapter.loadObjectInfo()")}writeStdin(t){if(this.inPrompt<=0){this.sendEvent(new D.OutputEvent(`!! Attempted to writeStdin "${t instanceof Buffer?`Buffer[${t.length}]`:t}" while not in a prompt
2996
3071
  `,"console"));return}this.factorio?.writeStdin(Buffer.concat([t instanceof Buffer?t:Buffer.from(t),Buffer.from(`
2997
3072
  `)]))}async writeOrQueueStdin(t,n,i){return this.inPrompt>0?(this.writeStdin(t),n&&await n,!0):new Promise(u=>this.stdinQueue.push({mesg:t,resolve:u,consumed:n,signal:i}))}async runQueuedStdin(){if(this.stdinQueue.length>0){for await(let t of this.stdinQueue)t.signal?.aborted?t.resolve(!1):(this.writeStdin(t.mesg),t.resolve(!0),t.consumed&&await t.consumed);this.stdinQueue=[]}}clearQueuedStdin(){this.stdinQueue.length>0&&(this.stdinQueue.forEach(t=>{t.resolve(!1)}),this.stdinQueue=[])}continue(t){if(this.inPrompt<=0){this.sendEvent(new D.OutputEvent(`!! Attempted to continue while not in a prompt
2998
3073
  `,"console"));return}(t||this.breakPointsChanged.size!==0)&&this.updateBreakpoints(t),this.writeStdin("cont"),this.inPrompt--}continueRequire(t,n){if(this.inPrompt<=0){this.sendEvent(new D.OutputEvent(`!! Attempted to continueRequire while not in a prompt
2999
3074
  `,"console"));return}if(t){let i="";this.launchArgs.hookLog!==void 0&&(i+=`hooklog=${this.launchArgs.hookLog},`),this.launchArgs.keepOldLog!==void 0&&(i+=`keepoldlog=${this.launchArgs.keepOldLog},`),this.launchArgs.runningBreak!==void 0&&(i+=`runningBreak=${this.launchArgs.runningBreak},`),this.writeStdin(`__DebugAdapter={__config={${i}}}`)}this.writeStdin("cont"),this.inPrompt--}continueProfile(t,n){if(this.inPrompt<=0){this.sendEvent(new D.OutputEvent(`!! Attempted to continueProfile while not in a prompt
3000
- `,"console"));return}if(t){let i="";this.launchArgs.profileSlowStart!==void 0&&(i+=`slowStart=${this.launchArgs.profileSlowStart},`),this.launchArgs.profileUpdateRate!==void 0&&(i+=`updateRate=${this.launchArgs.profileUpdateRate},`),this.launchArgs.profileLines!==void 0&&(i+=`trackLines=${this.launchArgs.profileLines},`),this.launchArgs.profileFuncs!==void 0&&(i+=`trackFuncs=${this.launchArgs.profileFuncs},`),this.launchArgs.profileTree!==void 0&&(i+=`trackTree=${this.launchArgs.profileTree},`),this.writeStdin(`__Profiler${n||""}={${i}}`)}this.writeStdin("cont"),this.inPrompt--}async trydir(t,n){try{if((await this.fs.stat(t)).type&2){let s=JSON.parse(Buffer.from(await this.fs.readFile(Ye.joinPath(t,"info.json"))).toString("utf8"));if(s.name===n.name&&un.eq(s.version,n.version,{loose:!0}))return n.symbolFilePath=t.toString(),n.symbolStatus="Loaded Mod Directory",this.sendEvent(new D.OutputEvent(`loaded ${n.name} ${n.version} from modspath ${n.symbolFilePath}
3075
+ `,"console"));return}if(t){let i="";this.launchArgs.profileSlowStart!==void 0&&(i+=`slowStart=${this.launchArgs.profileSlowStart},`),this.launchArgs.profileUpdateRate!==void 0&&(i+=`updateRate=${this.launchArgs.profileUpdateRate},`),this.launchArgs.profileLines!==void 0&&(i+=`trackLines=${this.launchArgs.profileLines},`),this.launchArgs.profileFuncs!==void 0&&(i+=`trackFuncs=${this.launchArgs.profileFuncs},`),this.launchArgs.profileTree!==void 0&&(i+=`trackTree=${this.launchArgs.profileTree},`),this.writeStdin(`__Profiler${n||""}={${i}}`)}this.writeStdin("cont"),this.inPrompt--}async trydir(t,n){try{if((await this.fs.stat(t)).type&2){let s=JSON.parse(Buffer.from(await this.fs.readFile(Xe.joinPath(t,"info.json"))).toString("utf8"));if(s.name===n.name&&un.eq(s.version,n.version,{loose:!0}))return n.symbolFilePath=t.toString(),n.symbolStatus="Loaded Mod Directory",this.sendEvent(new D.OutputEvent(`loaded ${n.name} ${n.version} from modspath ${n.symbolFilePath}
3001
3076
  `,"console")),!0}}catch(i){return i.code!=="FileNotFound"&&i.code!=="ENOENT"&&this.sendEvent(new D.OutputEvent(`failed loading ${n.name} ${n.version} from modspath: ${i}
3002
3077
  `,"console")),!1}return!1}async updateModules(t){let n=this.editorInterface.getExtension?.("slevesque.vscode-zipexplorer");n&&(await n.activate(),await this.editorInterface.executeCommand("zipexplorer.clear"));for(let i of t)try{if(this._modules.set(i.name,i),i.name==="#user"){i.symbolFilePath=xe.file(await this.activeVersion.writeDataPath()).toString(),i.symbolStatus="Loaded Write Data Directory",this.sendEvent(new D.OutputEvent(`loaded ${i.name} from config ${i.symbolFilePath}
3003
- `,"console"));continue}if(i.name==="level"){i.symbolStatus="No Symbols (Level)";continue}try{let u=Ye.joinPath(xe.file(await this.activeVersion.dataPath()),i.name);if(JSON.parse(Buffer.from(await this.fs.readFile(Ye.joinPath(u,"info.json"))).toString("utf8")).name===i.name){i.symbolFilePath=u.toString(),i.symbolStatus="Loaded Data Directory",this.sendEvent(new D.OutputEvent(`loaded ${i.name} from data ${i.symbolFilePath}
3078
+ `,"console"));continue}if(i.name==="level"){i.symbolStatus="No Symbols (Level)";continue}try{let u=Xe.joinPath(xe.file(await this.activeVersion.dataPath()),i.name);if(JSON.parse(Buffer.from(await this.fs.readFile(Xe.joinPath(u,"info.json"))).toString("utf8")).name===i.name){i.symbolFilePath=u.toString(),i.symbolStatus="Loaded Data Directory",this.sendEvent(new D.OutputEvent(`loaded ${i.name} from data ${i.symbolFilePath}
3004
3079
  `,"console"));continue}}catch{}let s=this.workspaceModInfo.find(u=>u.name===i.name&&un.eq(u.version,i.version,{loose:!0}));if(s){i.symbolFilePath=s.uri.toString(),i.symbolStatus="Loaded Workspace Directory",this.sendEvent(new D.OutputEvent(`loaded ${i.name} ${i.version} from workspace ${i.symbolFilePath}
3005
- `,"console"));continue}if(this.launchArgs.modsPath){let u=Ye.joinPath(xe.file(this.launchArgs.modsPath),i.name);if(await this.trydir(u,i)||(u=Ye.joinPath(xe.file(this.launchArgs.modsPath),i.name+"_"+i.version),await this.trydir(u,i)))continue;if(n){let f=Ye.joinPath(xe.file(this.launchArgs.modsPath),i.name+"_"+i.version+".zip"),d;try{d=await this.fs.stat(f)}catch(c){c.code!=="FileNotFound"&&this.sendEvent(new D.OutputEvent(`${c}
3006
- `,"stderr"))}if(d&&d.type&1)try{await this.editorInterface.executeCommand("zipexplorer.exploreZipFile",f);let c=Ye.joinPath(f,i.name+"_"+i.version).with({scheme:"zip"});i.symbolFilePath=c.toString(),i.symbolStatus="Loaded Zip",this.sendEvent(new D.OutputEvent(`loaded ${i.name} ${i.version} from mod zip ${f.toString()}
3080
+ `,"console"));continue}if(this.launchArgs.modsPath){let u=Xe.joinPath(xe.file(this.launchArgs.modsPath),i.name);if(await this.trydir(u,i)||(u=Xe.joinPath(xe.file(this.launchArgs.modsPath),i.name+"_"+i.version),await this.trydir(u,i)))continue;if(n){let f=Xe.joinPath(xe.file(this.launchArgs.modsPath),i.name+"_"+i.version+".zip"),d;try{d=await this.fs.stat(f)}catch(c){c.code!=="FileNotFound"&&this.sendEvent(new D.OutputEvent(`${c}
3081
+ `,"stderr"))}if(d&&d.type&1)try{await this.editorInterface.executeCommand("zipexplorer.exploreZipFile",f);let c=Xe.joinPath(f,i.name+"_"+i.version).with({scheme:"zip"});i.symbolFilePath=c.toString(),i.symbolStatus="Loaded Zip",this.sendEvent(new D.OutputEvent(`loaded ${i.name} ${i.version} from mod zip ${f.toString()}
3007
3082
  `,"console"));continue}catch(c){this.sendEvent(new D.OutputEvent(`failed loading ${i.name} ${i.version} from mod zip ${f.toString()}: ${c}
3008
3083
  `,"console"))}}}i.symbolStatus="Unknown",this.sendEvent(new D.OutputEvent(`no source found for ${i.name} ${i.version}
3009
3084
  `,"console"))}catch(s){i.symbolStatus="Error",this.sendEvent(new D.OutputEvent(`failed locating source for ${i.name} ${i.version}: ${s}
3010
- `,"console"))}this._modules.forEach(i=>{this.sendEvent(new D.ModuleEvent("new",i))})}updateBreakpoints(t=!1){let n=Array();this.breakPoints.forEach((i,s)=>{(t||this.breakPointsChanged.has(s))&&n.push(Buffer.concat([Buffer.from("__DebugAdapter.__dap.updateBreakpoints("),It(mo(s,i)),Buffer.from(`)
3085
+ `,"console"))}this._modules.forEach(i=>{this.sendEvent(new D.ModuleEvent("new",i))})}updateBreakpoints(t=!1){let n=Array();this.breakPoints.forEach((i,s)=>{(t||this.breakPointsChanged.has(s))&&n.push(Buffer.concat([Buffer.from("__DebugAdapter.__dap.updateBreakpoints("),Ct(mo(s,i)),Buffer.from(`)
3011
3086
  `)]))}),this.breakPointsChanged.clear(),this.writeStdin(Buffer.concat(n))}async terminate(){this.factorio?.kill?.();let t=this.launchArgs?.modsPath;if(t)if(this.launchArgs.manageMod===!1)this.sendEvent(new D.OutputEvent(`automatic management of mods disabled by launch config
3012
3087
  `,"console"));else try{let n=new Rr(t);await n.Loaded,n.set("debugadapter",!1),await n.write(),this.sendEvent(new D.OutputEvent(`debugadapter disabled in mod-list.json
3013
3088
  `,"console"))}catch(n){this.sendEvent(new D.OutputEvent(`failed to disable debugadapter in mod-list.json:
3014
3089
  ${n}
3015
- `,"console"))}this.sendEvent(new D.TerminatedEvent),!this._isRunningInline()&&process.env.NODE_V8_COVERAGE&&process.exit()}};var is=(c=>(c[c.Nil=0]="Nil",c[c.BoolFalse=1]="BoolFalse",c[c.BoolTrue=2]="BoolTrue",c[c.Number=3]="Number",c[c.String=4]="String",c[c.Table=5]="Table",c[c.ExistingGCObject=6]="ExistingGCObject",c[c.LuaObject=7]="LuaObject",c[c.TableWithMeta=8]="TableWithMeta",c))(is||{}),os=(v=>(v[v.LuaEntity=0]="LuaEntity",v[v.LuaRecipe=2]="LuaRecipe",v[v.LuaTechnology=3]="LuaTechnology",v[v.LuaRandomGenerator=4]="LuaRandomGenerator",v[v.LuaForce=5]="LuaForce",v[v.LuaBurner=6]="LuaBurner",v[v.LuaLogisticPoint=7]="LuaLogisticPoint",v[v.LuaDecorativePrototype=8]="LuaDecorativePrototype",v[v.LuaCustomChartTag=9]="LuaCustomChartTag",v[v.LuaPermissionGroups=10]="LuaPermissionGroups",v[v.LuaPermissionGroup=11]="LuaPermissionGroup",v[v.LuaUnitGroup=12]="LuaUnitGroup",v[v.LuaTrain=13]="LuaTrain",v[v.LuaFluidBox=14]="LuaFluidBox",v[v.LuaEntityPrototype=15]="LuaEntityPrototype",v[v.LuaItemPrototype=16]="LuaItemPrototype",v[v.LuaEquipmentGrid=18]="LuaEquipmentGrid",v[v.LuaEquipment=19]="LuaEquipment",v[v.LuaItemStack=20]="LuaItemStack",v[v.LuaPlayer=21]="LuaPlayer",v[v.LuaGui=22]="LuaGui",v[v.LuaGuiElement=23]="LuaGuiElement",v[v.LuaStyle=24]="LuaStyle",v[v.LuaSurface=25]="LuaSurface",v[v.LuaFluidPrototype=26]="LuaFluidPrototype",v[v.LuaGroup=27]="LuaGroup",v[v.LuaTile=28]="LuaTile",v[v.LuaChunkIterator=29]="LuaChunkIterator",v[v.LuaStructMapSettings=30]="LuaStructMapSettings",v[v.LuaTransportLine=31]="LuaTransportLine",v[v.LuaLogisticNetwork=32]="LuaLogisticNetwork",v[v.LuaLogisticCell=33]="LuaLogisticCell",v[v.LuaInventory=34]="LuaInventory",v[v.LuaControlBehavior=35]="LuaControlBehavior",v[v.LuaFlowStatistics=36]="LuaFlowStatistics",v[v.LuaTilePrototype=37]="LuaTilePrototype",v[v.LuaEquipmentPrototype=38]="LuaEquipmentPrototype",v[v.LuaCircuitNetwork=39]="LuaCircuitNetwork",v[v.LuaDamagePrototype=40]="LuaDamagePrototype",v[v.LuaVirtualSignalPrototype=41]="LuaVirtualSignalPrototype",v[v.LuaEquipmentGridPrototype=42]="LuaEquipmentGridPrototype",v[v.LuaRecipePrototype=43]="LuaRecipePrototype",v[v.LuaTechnologyPrototype=44]="LuaTechnologyPrototype",v[v.LuaBurnerPrototype=45]="LuaBurnerPrototype",v[v.LuaElectricEnergySourcePrototype=46]="LuaElectricEnergySourcePrototype",v[v.LuaCustomInputPrototype=47]="LuaCustomInputPrototype",v[v.LuaNoiseLayerPrototype=48]="LuaNoiseLayerPrototype",v[v.LuaAutoplaceControlPrototype=49]="LuaAutoplaceControlPrototype",v[v.LuaModSettingPrototype=50]="LuaModSettingPrototype",v[v.LuaAmmoCategoryPrototype=51]="LuaAmmoCategoryPrototype",v[v.LuaRailPath=52]="LuaRailPath",v[v.LuaFluidBoxPrototype=53]="LuaFluidBoxPrototype",v[v.LuaAISettings=54]="LuaAISettings",v[v.LuaProfiler=55]="LuaProfiler",v[v.LuaNamedNoiseExpression=56]="LuaNamedNoiseExpression",v[v.LuaFuelCategoryPrototype=57]="LuaFuelCategoryPrototype",v[v.LuaResourceCategoryPrototype=58]="LuaResourceCategoryPrototype",v[v.LuaAchievementPrototype=59]="LuaAchievementPrototype",v[v.LuaModuleCategoryPrototype=60]="LuaModuleCategoryPrototype",v[v.LuaEquipmentCategoryPrototype=61]="LuaEquipmentCategoryPrototype",v[v.LuaTrivialSmokePrototype=62]="LuaTrivialSmokePrototype",v[v.LuaShortcutPrototype=63]="LuaShortcutPrototype",v[v.LuaRecipeCategoryPrototype=64]="LuaRecipeCategoryPrototype",v[v.LuaParticlePrototype=65]="LuaParticlePrototype",v[v.LuaFluidEnergySourcePrototype=66]="LuaFluidEnergySourcePrototype",v[v.LuaHeatEnergySourcePrototype=67]="LuaHeatEnergySourcePrototype",v[v.LuaVoidEnergySourcePrototype=68]="LuaVoidEnergySourcePrototype",v[v.LuaFontPrototype=69]="LuaFontPrototype",v[v.LuaHeatBufferPrototype=79]="LuaHeatBufferPrototype",v[v.xLuaFutureObject=-1]="xLuaFutureObject",v))(os||{}),bt=(S=>(S[S.None=0]="None",S[S.EntityInventory=1]="EntityInventory",S[S.ControllerInventory=2]="ControllerInventory",S[S.ItemEntity=3]="ItemEntity",S[S.EntityCursorStack=4]="EntityCursorStack",S[S.ControllerCursorStack=5]="ControllerCursorStack",S[S.Inserter=6]="Inserter",S[S.ItemWithInventory=7]="ItemWithInventory",S[S.BeltConnectable=8]="BeltConnectable",S[S.Equipment=9]="Equipment",S[S.TargetableInventory=10]="TargetableInventory",S[S.TargetableItemStack=11]="TargetableItemStack",S[S.PlayerBlueprint=12]="PlayerBlueprint",S[S.ScriptInventory=13]="ScriptInventory",S[S.LinkedInventory=14]="LinkedInventory",S))(bt||{}),as=(L=>(L[L.Container=1]="Container",L[L.GenericOnOff=2]="GenericOnOff",L[L.Inserter=3]="Inserter",L[L.Lamp=4]="Lamp",L[L.LogisticContainer=5]="LogisticContainer",L[L.Roboport=6]="Roboport",L[L.StorageTank=7]="StorageTank",L[L.TrainStop=8]="TrainStop",L[L.DeciderCombinator=9]="DeciderCombinator",L[L.ArithmeticCombinator=10]="ArithmeticCombinator",L[L.ConstantCombinator=11]="ConstantCombinator",L[L.TransportBelt=12]="TransportBelt",L[L.Accumulator=13]="Accumulator",L[L.RailSignal=14]="RailSignal",L[L.Wall=15]="Wall",L[L.MiningDrill=16]="MiningDrill",L[L.ProgrammableSpeaker=17]="ProgrammableSpeaker",L[L.RailChainSignal=18]="RailChainSignal",L))(as||{}),cn=(u=>(u[u.ItemProduction=1]="ItemProduction",u[u.FluidProduction=2]="FluidProduction",u[u.KillCount=3]="KillCount",u[u.EntityBuild=6]="EntityBuild",u[u.ElectricNetwork=7]="ElectricNetwork",u[u.Pollution=8]="Pollution",u))(cn||{}),ns=class{version;data;gcid=0;gcidmap=[];gcidmaps;constructor(e){this.version=Dt.load(e.read(9)),this.data={},this.gcidmaps={};let t=e.readUInt32LE();for(let n=0;n<t;n++){let i=e.readPackedUInt_8_32(),s=e.readString(i),u=e.readPackedUInt_8_32(),f=new ar(e.read(u));Dt.load(f.read(9)),this.gcid=0,this.gcidmap=[];let d=this.loadLuaValue(f);if(f.readableLength>0)throw new Error(`Data for ${s} not fully consumed, ${f.readableLength} bytes left`);e.readUInt8(),this.data[s]=d,this.gcidmaps[s]=this.gcidmap}}find(e,t){return this.gcidmaps[e][t]}loadLuaValue(e){let t=e.readUInt8(),n=is[t];switch(n){case"Nil":case"BoolFalse":case"BoolTrue":return{type:n};case"Number":{let s=e.readDoubleLE();return{type:n,value:s}}case"String":{let s=e.readPackedUInt_8_32(),u=e.readString(s);return{type:n,value:u}}case"TableWithMeta":case"Table":{let s=this.gcid++,u;if(n==="TableWithMeta"){let p=e.readPackedUInt_8_32();u=e.readString(p)}let f=e.readPackedUInt_8_32(),d=[];for(let p=0;p<f;p++){let _=this.loadLuaValue(e),b=this.loadLuaValue(e);d.push({key:_,value:b})}let c={type:n,id:s,values:d,meta:u};return this.gcidmap[s]=c,c}case"ExistingGCObject":let i=e.readPackedUInt_16_32();return{type:n,id:i};case"LuaObject":{let s="LuaObject",u=this.gcid++,f=e.readUInt32LE(),d=os[f],c=this.loadLuaObjectData(f,e);return{type:s,id:u,value:Object.assign({type:d},c)}}default:throw new Error(`Invalid type ${n} in saved lua value`)}}loadLuaObjectData(e,t){switch(e){case 0:case 11:case 12:case 13:case 14:case 18:case 19:case 21:case 22:case 32:case 33:case 52:case 54:return{target:t.readUInt32LE()};case 10:return{};case 2:case 3:{let n=t.readUInt8(),i=t.readUInt16LE();return{force:n,id:i}}case 4:return{seed:[t.readUInt32LE(),t.readUInt32LE(),t.readUInt32LE()]};case 6:{let n=t.readUInt32LE(),i=t.readUInt32LE();return{entity:n,equipment:i}}case 7:{let n=t.readUInt8(),i=t.readUInt32LE();return{index:n,owner:i}}case 9:{let n=t.readUInt8(),i=t.readPackedUInt_8_32(),s=t.readUInt32LE();return{force:n,surface:i,target:s}}case 5:case 8:case 37:case 40:case 42:case 49:case 51:case 57:case 58:case 60:case 61:case 62:return{id:t.readUInt8()};case 15:case 16:case 26:case 38:case 41:case 43:case 44:case 47:case 48:case 50:case 59:case 63:case 64:case 65:case 66:case 67:case 68:case 79:return{id:t.readUInt16LE()};case 56:return{id:t.readUInt32LE()};case 28:{let n={x:t.readInt32LE(),y:t.readInt32LE()},i=t.readPackedUInt_8_32();return{position:n,surface:i}}case 23:case 24:{let n=t.readUInt32LE(),i=t.readUInt32LE();return{player:n,index:i}}case 25:return{surface:t.readPackedUInt_8_32()};case 27:{let n=t.readUInt8(),i=t.readUInt16LE();return{group:n,subgroup:i}}case 29:{let n=t.readPackedUInt_8_32(),i={x:t.readInt32LE(),y:t.readInt32LE()};return{surface:n,position:i}}case 31:{let n=t.readUInt32LE(),i=t.readUInt8();return{target:n,index:i}}case 34:{let n=t.readUInt32LE(),i=t.readUInt32LE(),s=t.readUInt32LE(),u=t.readUInt32LE(),f=t.readUInt32LE(),d=t.readUInt8()!==0,c;if(d){let _=t.readUInt8(),b=t.readUInt16LE(),g=t.readUInt32LE();c={force:_,proto:b,linkid:g}}let p=t.readUInt8();return{entity:n,controller:i,item:s,equipment:u,scriptinv:f,link:c,index:p}}case 45:case 46:{let n=t.readUInt16LE(),i=t.readUInt16LE();return{entity:n,equipment:i}}case 53:{let n=t.readUInt16LE(),i=t.readUInt32LE(),s=t.readUInt8();return{entity:n,index:i,targettype:s}}case 55:return{stopped:t.readUInt8()!==0};case 69:{let n=t.readUInt8()!==0,i;if(n){let s=t.readPackedUInt_8_32();i=t.readString(s)}return{name:i}}case 39:{let n=t.readUInt32LE(),i=t.readUInt8(),s=t.readUInt8();return{target:n,connector:i,wire:s}}case 20:return this.loadLuaItemStack(t);case 35:return this.loadLuaControlBehavior(t);case 36:return this.loadLuaFlowStatistics(t);case 30:throw new Error(`LuaObject of type ${e} cannot have been saved`);default:throw new Error(`Unknown LuaObject type ${e}`)}}loadLuaItemStack(e){let t=e.readUInt32LE();switch(t){case 0:return{stacktype:bt[t]};case 1:case 2:case 7:case 9:{let n=e.readUInt32LE(),i=e.readUInt8(),s=e.readUInt16LE();return{stacktype:bt[t],target:n,inv:i,slot:s}}case 3:case 4:case 5:case 6:case 12:{let n=e.readUInt32LE();return{stacktype:bt[t],target:n}}case 8:{let n=e.readUInt32LE(),i=e.readUInt8(),s=e.readUInt8();return{stacktype:bt[t],target:n,line:i,item:s}}case 10:throw new Error(`LuaItemStack type ${t} cannot have been saved`);case 11:return{stacktype:bt[t]};case 13:{let n=e.readUInt32LE(),i=e.readUInt16LE();return{stacktype:bt[t],target:n,slot:i}}case 14:{let n=e.readUInt8(),i=e.readUInt16LE(),s=e.readUInt32LE();return{stacktype:bt[t],force:n,proto:i,linkid:s}}default:throw new Error(`Unknown LuaItemStack type ${t}`)}}loadLuaControlBehavior(e){let t=e.readUInt32LE(),n=e.readUInt32LE();return{behavior:as[t],target:n}}loadLuaFlowStatistics(e){let t=e.readUInt32LE();switch(t){case 1:case 2:case 3:case 6:let n=e.readUInt8();return{flow:cn[t],force:n};case 7:let i=e.readUInt32LE();return{flow:cn[t],target:i};case 8:return{flow:cn[t]};default:throw new Error(`Unknown LuaFlowStatistics type ${t}`)}}};var Gd=require("stream"),ar=class extends Gd.Readable{constructor(e){super(),this.push(e),this.push(null)}readUInt8(){return this.read(1).readUInt8()}readUInt16LE(){return this.read(2).readUInt16LE()}readUInt32LE(){return this.read(4).readUInt32LE()}readInt32LE(){return this.read(4).readInt32LE()}readBigInt64LE(){return this.read(8).readBigInt64LE()}readBigUInt64LE(){return this.read(8).readBigUInt64LE()}readDoubleLE(){return this.read(8).readDoubleLE()}readPackedUInt_8_32(){let e=this.readUInt8();return e===255&&(e=this.readUInt32LE()),e}readPackedUInt_16_32(){let e=this.readUInt16LE();return e===65535&&(e=this.readUInt32LE()),e}readString(e){return e===0?"":this.read(e).toString("utf8")}};var dn=se(Jd()),Oe=se(require("os")),Z=se(require("path"));var Zd=require("child_process");function Ci(a,e){return a.match(/^~[\\\/]/)&&(a=Z.posix.join(Oe.homedir().replace(/\\/g,"/"),a.replace(/^~[\\\/]/,""))),a=a.replace("${userHome}",Oe.homedir()),e?.[0]&&(a=a.replace("${workspaceFolder}",e[0].uri.fsPath)),a=a.replace(/\$\{env:(\w+)}/g,(t,n)=>process.env[n]??t),a}var us=class{constructor(e,t,n,i){this.fs=e;this.fv=t;this.docs=n;this.workspaceFolders=i}async getBinaryVersion(){return new Promise((e,t)=>{(0,Zd.execFile)(this.factorioPath,["--version"],{env:Object.assign({},process.env,{SteamAppId:"427520"})},(n,i,s)=>{n&&t(n);let u=i?.match(/^Version: ([0-9\.]+) /);u&&e(u[1]),t(new Error("Unable to read version"))})})}async debugLaunchArgs(){let e=[];return e.push(this.factorioPath),this.fv.docsPath&&e.push("--docs",this.fv.docsPath),this.configPathIsOverriden()&&e.push("--config",await this.configPath()),this.workspaceFolders&&e.push("--workspace",...this.workspaceFolders.map(t=>t.uri.fsPath)),e}get name(){return this.fv.name}get factorioPath(){return Ci(this.fv.factorioPath,this.workspaceFolders)}get docsPath(){return Z.join(this.factorioPath,this.fv.docsPath?this.fv.docsPath:Oe.platform()==="darwin"?"../../doc-html/runtime-api.json":"../../../doc-html/runtime-api.json")}get protosPath(){return Z.join(this.factorioPath,this.fv.protosPath?this.fv.protosPath:this.fv.docsPath?Z.join(this.fv.docsPath,"../prototype-api.json"):Oe.platform()==="darwin"?"../../doc-html/prototype-api.json":"../../../doc-html/prototype-api.json")}configPathIsOverriden(){return!!this.fv.configPath}async configPath(){if(this.fv.configPath)return Ci(this.fv.configPath,this.workspaceFolders);let e=Z.resolve(Z.dirname(this.factorioPath),"../../config-path.cfg");try{let t=dn.parse((await this.fs.readFile(xe.file(e))).toString());return Z.resolve(this.translatePath(t["config-path"]),"./config.ini")}catch{}return this.translatePath("__PATH__system-write-data__/config/config.ini")}get nativeDebugger(){return this.fv.nativeDebugger&&Ci(this.fv.nativeDebugger,this.workspaceFolders)}get nativeDAP(){return this.fv.nativeDAP}iniData;async configIni(){return this.iniData||(this.iniData=this.fs.readFile(xe.file(await this.configPath())).then(e=>dn.parse(e.toString()))),this.iniData}async isPrototypeCacheEnabled(){try{return(await this.configIni()).other?.["cache-prototype-data"]}catch{return}}async disablePrototypeCache(){this.iniData=void 0;let e=xe.file(await this.configPath()),t=(await this.fs.readFile(e)).toString();t=t.replace("cache-prototype-data=","; cache-prototype-data="),await this.fs.writeFile(e,Buffer.from(t)),this.iniData=dn.parse(t)}async isMouseAutoCaptureDisabled(){try{return(await this.configIni()).other?.["disable-mouse-auto-capture"]}catch{return}}async disableMouseAutoCapture(){this.iniData=void 0;let e=xe.file(await this.configPath()),t=(await this.fs.readFile(e)).toString(),n=t.match(/^;? *disable-mouse-auto-capture=.*$/m);if(n)t=t.slice(0,n.index)+`
3090
+ `,"console"))}this.sendEvent(new D.TerminatedEvent),!this._isRunningInline()&&process.env.NODE_V8_COVERAGE&&process.exit()}};var is=(c=>(c[c.Nil=0]="Nil",c[c.BoolFalse=1]="BoolFalse",c[c.BoolTrue=2]="BoolTrue",c[c.Number=3]="Number",c[c.String=4]="String",c[c.Table=5]="Table",c[c.ExistingGCObject=6]="ExistingGCObject",c[c.LuaObject=7]="LuaObject",c[c.TableWithMeta=8]="TableWithMeta",c))(is||{}),os=(v=>(v[v.LuaEntity=0]="LuaEntity",v[v.LuaRecipe=2]="LuaRecipe",v[v.LuaTechnology=3]="LuaTechnology",v[v.LuaRandomGenerator=4]="LuaRandomGenerator",v[v.LuaForce=5]="LuaForce",v[v.LuaBurner=6]="LuaBurner",v[v.LuaLogisticPoint=7]="LuaLogisticPoint",v[v.LuaDecorativePrototype=8]="LuaDecorativePrototype",v[v.LuaCustomChartTag=9]="LuaCustomChartTag",v[v.LuaPermissionGroups=10]="LuaPermissionGroups",v[v.LuaPermissionGroup=11]="LuaPermissionGroup",v[v.LuaUnitGroup=12]="LuaUnitGroup",v[v.LuaTrain=13]="LuaTrain",v[v.LuaFluidBox=14]="LuaFluidBox",v[v.LuaEntityPrototype=15]="LuaEntityPrototype",v[v.LuaItemPrototype=16]="LuaItemPrototype",v[v.LuaEquipmentGrid=18]="LuaEquipmentGrid",v[v.LuaEquipment=19]="LuaEquipment",v[v.LuaItemStack=20]="LuaItemStack",v[v.LuaPlayer=21]="LuaPlayer",v[v.LuaGui=22]="LuaGui",v[v.LuaGuiElement=23]="LuaGuiElement",v[v.LuaStyle=24]="LuaStyle",v[v.LuaSurface=25]="LuaSurface",v[v.LuaFluidPrototype=26]="LuaFluidPrototype",v[v.LuaGroup=27]="LuaGroup",v[v.LuaTile=28]="LuaTile",v[v.LuaChunkIterator=29]="LuaChunkIterator",v[v.LuaStructMapSettings=30]="LuaStructMapSettings",v[v.LuaTransportLine=31]="LuaTransportLine",v[v.LuaLogisticNetwork=32]="LuaLogisticNetwork",v[v.LuaLogisticCell=33]="LuaLogisticCell",v[v.LuaInventory=34]="LuaInventory",v[v.LuaControlBehavior=35]="LuaControlBehavior",v[v.LuaFlowStatistics=36]="LuaFlowStatistics",v[v.LuaTilePrototype=37]="LuaTilePrototype",v[v.LuaEquipmentPrototype=38]="LuaEquipmentPrototype",v[v.LuaCircuitNetwork=39]="LuaCircuitNetwork",v[v.LuaDamagePrototype=40]="LuaDamagePrototype",v[v.LuaVirtualSignalPrototype=41]="LuaVirtualSignalPrototype",v[v.LuaEquipmentGridPrototype=42]="LuaEquipmentGridPrototype",v[v.LuaRecipePrototype=43]="LuaRecipePrototype",v[v.LuaTechnologyPrototype=44]="LuaTechnologyPrototype",v[v.LuaBurnerPrototype=45]="LuaBurnerPrototype",v[v.LuaElectricEnergySourcePrototype=46]="LuaElectricEnergySourcePrototype",v[v.LuaCustomInputPrototype=47]="LuaCustomInputPrototype",v[v.LuaNoiseLayerPrototype=48]="LuaNoiseLayerPrototype",v[v.LuaAutoplaceControlPrototype=49]="LuaAutoplaceControlPrototype",v[v.LuaModSettingPrototype=50]="LuaModSettingPrototype",v[v.LuaAmmoCategoryPrototype=51]="LuaAmmoCategoryPrototype",v[v.LuaRailPath=52]="LuaRailPath",v[v.LuaFluidBoxPrototype=53]="LuaFluidBoxPrototype",v[v.LuaAISettings=54]="LuaAISettings",v[v.LuaProfiler=55]="LuaProfiler",v[v.LuaNamedNoiseExpression=56]="LuaNamedNoiseExpression",v[v.LuaFuelCategoryPrototype=57]="LuaFuelCategoryPrototype",v[v.LuaResourceCategoryPrototype=58]="LuaResourceCategoryPrototype",v[v.LuaAchievementPrototype=59]="LuaAchievementPrototype",v[v.LuaModuleCategoryPrototype=60]="LuaModuleCategoryPrototype",v[v.LuaEquipmentCategoryPrototype=61]="LuaEquipmentCategoryPrototype",v[v.LuaTrivialSmokePrototype=62]="LuaTrivialSmokePrototype",v[v.LuaShortcutPrototype=63]="LuaShortcutPrototype",v[v.LuaRecipeCategoryPrototype=64]="LuaRecipeCategoryPrototype",v[v.LuaParticlePrototype=65]="LuaParticlePrototype",v[v.LuaFluidEnergySourcePrototype=66]="LuaFluidEnergySourcePrototype",v[v.LuaHeatEnergySourcePrototype=67]="LuaHeatEnergySourcePrototype",v[v.LuaVoidEnergySourcePrototype=68]="LuaVoidEnergySourcePrototype",v[v.LuaFontPrototype=69]="LuaFontPrototype",v[v.LuaHeatBufferPrototype=79]="LuaHeatBufferPrototype",v[v.xLuaFutureObject=-1]="xLuaFutureObject",v))(os||{}),bt=(S=>(S[S.None=0]="None",S[S.EntityInventory=1]="EntityInventory",S[S.ControllerInventory=2]="ControllerInventory",S[S.ItemEntity=3]="ItemEntity",S[S.EntityCursorStack=4]="EntityCursorStack",S[S.ControllerCursorStack=5]="ControllerCursorStack",S[S.Inserter=6]="Inserter",S[S.ItemWithInventory=7]="ItemWithInventory",S[S.BeltConnectable=8]="BeltConnectable",S[S.Equipment=9]="Equipment",S[S.TargetableInventory=10]="TargetableInventory",S[S.TargetableItemStack=11]="TargetableItemStack",S[S.PlayerBlueprint=12]="PlayerBlueprint",S[S.ScriptInventory=13]="ScriptInventory",S[S.LinkedInventory=14]="LinkedInventory",S))(bt||{}),as=(L=>(L[L.Container=1]="Container",L[L.GenericOnOff=2]="GenericOnOff",L[L.Inserter=3]="Inserter",L[L.Lamp=4]="Lamp",L[L.LogisticContainer=5]="LogisticContainer",L[L.Roboport=6]="Roboport",L[L.StorageTank=7]="StorageTank",L[L.TrainStop=8]="TrainStop",L[L.DeciderCombinator=9]="DeciderCombinator",L[L.ArithmeticCombinator=10]="ArithmeticCombinator",L[L.ConstantCombinator=11]="ConstantCombinator",L[L.TransportBelt=12]="TransportBelt",L[L.Accumulator=13]="Accumulator",L[L.RailSignal=14]="RailSignal",L[L.Wall=15]="Wall",L[L.MiningDrill=16]="MiningDrill",L[L.ProgrammableSpeaker=17]="ProgrammableSpeaker",L[L.RailChainSignal=18]="RailChainSignal",L))(as||{}),cn=(u=>(u[u.ItemProduction=1]="ItemProduction",u[u.FluidProduction=2]="FluidProduction",u[u.KillCount=3]="KillCount",u[u.EntityBuild=6]="EntityBuild",u[u.ElectricNetwork=7]="ElectricNetwork",u[u.Pollution=8]="Pollution",u))(cn||{}),ns=class{version;data;gcid=0;gcidmap=[];gcidmaps;constructor(e){this.version=Dt.load(e.read(9)),this.data={},this.gcidmaps={};let t=e.readUInt32LE();for(let n=0;n<t;n++){let i=e.readPackedUInt_8_32(),s=e.readString(i),u=e.readPackedUInt_8_32(),f=new ar(e.read(u));Dt.load(f.read(9)),this.gcid=0,this.gcidmap=[];let d=this.loadLuaValue(f);if(f.readableLength>0)throw new Error(`Data for ${s} not fully consumed, ${f.readableLength} bytes left`);e.readUInt8(),this.data[s]=d,this.gcidmaps[s]=this.gcidmap}}find(e,t){return this.gcidmaps[e][t]}loadLuaValue(e){let t=e.readUInt8(),n=is[t];switch(n){case"Nil":case"BoolFalse":case"BoolTrue":return{type:n};case"Number":{let s=e.readDoubleLE();return{type:n,value:s}}case"String":{let s=e.readPackedUInt_8_32(),u=e.readString(s);return{type:n,value:u}}case"TableWithMeta":case"Table":{let s=this.gcid++,u;if(n==="TableWithMeta"){let p=e.readPackedUInt_8_32();u=e.readString(p)}let f=e.readPackedUInt_8_32(),d=[];for(let p=0;p<f;p++){let _=this.loadLuaValue(e),b=this.loadLuaValue(e);d.push({key:_,value:b})}let c={type:n,id:s,values:d,meta:u};return this.gcidmap[s]=c,c}case"ExistingGCObject":let i=e.readPackedUInt_16_32();return{type:n,id:i};case"LuaObject":{let s="LuaObject",u=this.gcid++,f=e.readUInt32LE(),d=os[f],c=this.loadLuaObjectData(f,e);return{type:s,id:u,value:Object.assign({type:d},c)}}default:throw new Error(`Invalid type ${n} in saved lua value`)}}loadLuaObjectData(e,t){switch(e){case 0:case 11:case 12:case 13:case 14:case 18:case 19:case 21:case 22:case 32:case 33:case 52:case 54:return{target:t.readUInt32LE()};case 10:return{};case 2:case 3:{let n=t.readUInt8(),i=t.readUInt16LE();return{force:n,id:i}}case 4:return{seed:[t.readUInt32LE(),t.readUInt32LE(),t.readUInt32LE()]};case 6:{let n=t.readUInt32LE(),i=t.readUInt32LE();return{entity:n,equipment:i}}case 7:{let n=t.readUInt8(),i=t.readUInt32LE();return{index:n,owner:i}}case 9:{let n=t.readUInt8(),i=t.readPackedUInt_8_32(),s=t.readUInt32LE();return{force:n,surface:i,target:s}}case 5:case 8:case 37:case 40:case 42:case 49:case 51:case 57:case 58:case 60:case 61:case 62:return{id:t.readUInt8()};case 15:case 16:case 26:case 38:case 41:case 43:case 44:case 47:case 48:case 50:case 59:case 63:case 64:case 65:case 66:case 67:case 68:case 79:return{id:t.readUInt16LE()};case 56:return{id:t.readUInt32LE()};case 28:{let n={x:t.readInt32LE(),y:t.readInt32LE()},i=t.readPackedUInt_8_32();return{position:n,surface:i}}case 23:case 24:{let n=t.readUInt32LE(),i=t.readUInt32LE();return{player:n,index:i}}case 25:return{surface:t.readPackedUInt_8_32()};case 27:{let n=t.readUInt8(),i=t.readUInt16LE();return{group:n,subgroup:i}}case 29:{let n=t.readPackedUInt_8_32(),i={x:t.readInt32LE(),y:t.readInt32LE()};return{surface:n,position:i}}case 31:{let n=t.readUInt32LE(),i=t.readUInt8();return{target:n,index:i}}case 34:{let n=t.readUInt32LE(),i=t.readUInt32LE(),s=t.readUInt32LE(),u=t.readUInt32LE(),f=t.readUInt32LE(),d=t.readUInt8()!==0,c;if(d){let _=t.readUInt8(),b=t.readUInt16LE(),g=t.readUInt32LE();c={force:_,proto:b,linkid:g}}let p=t.readUInt8();return{entity:n,controller:i,item:s,equipment:u,scriptinv:f,link:c,index:p}}case 45:case 46:{let n=t.readUInt16LE(),i=t.readUInt16LE();return{entity:n,equipment:i}}case 53:{let n=t.readUInt16LE(),i=t.readUInt32LE(),s=t.readUInt8();return{entity:n,index:i,targettype:s}}case 55:return{stopped:t.readUInt8()!==0};case 69:{let n=t.readUInt8()!==0,i;if(n){let s=t.readPackedUInt_8_32();i=t.readString(s)}return{name:i}}case 39:{let n=t.readUInt32LE(),i=t.readUInt8(),s=t.readUInt8();return{target:n,connector:i,wire:s}}case 20:return this.loadLuaItemStack(t);case 35:return this.loadLuaControlBehavior(t);case 36:return this.loadLuaFlowStatistics(t);case 30:throw new Error(`LuaObject of type ${e} cannot have been saved`);default:throw new Error(`Unknown LuaObject type ${e}`)}}loadLuaItemStack(e){let t=e.readUInt32LE();switch(t){case 0:return{stacktype:bt[t]};case 1:case 2:case 7:case 9:{let n=e.readUInt32LE(),i=e.readUInt8(),s=e.readUInt16LE();return{stacktype:bt[t],target:n,inv:i,slot:s}}case 3:case 4:case 5:case 6:case 12:{let n=e.readUInt32LE();return{stacktype:bt[t],target:n}}case 8:{let n=e.readUInt32LE(),i=e.readUInt8(),s=e.readUInt8();return{stacktype:bt[t],target:n,line:i,item:s}}case 10:throw new Error(`LuaItemStack type ${t} cannot have been saved`);case 11:return{stacktype:bt[t]};case 13:{let n=e.readUInt32LE(),i=e.readUInt16LE();return{stacktype:bt[t],target:n,slot:i}}case 14:{let n=e.readUInt8(),i=e.readUInt16LE(),s=e.readUInt32LE();return{stacktype:bt[t],force:n,proto:i,linkid:s}}default:throw new Error(`Unknown LuaItemStack type ${t}`)}}loadLuaControlBehavior(e){let t=e.readUInt32LE(),n=e.readUInt32LE();return{behavior:as[t],target:n}}loadLuaFlowStatistics(e){let t=e.readUInt32LE();switch(t){case 1:case 2:case 3:case 6:let n=e.readUInt8();return{flow:cn[t],force:n};case 7:let i=e.readUInt32LE();return{flow:cn[t],target:i};case 8:return{flow:cn[t]};default:throw new Error(`Unknown LuaFlowStatistics type ${t}`)}}};var Kd=require("stream"),ar=class extends Kd.Readable{constructor(e){super(),this.push(e),this.push(null)}readUInt8(){return this.read(1).readUInt8()}readUInt16LE(){return this.read(2).readUInt16LE()}readUInt32LE(){return this.read(4).readUInt32LE()}readInt32LE(){return this.read(4).readInt32LE()}readBigInt64LE(){return this.read(8).readBigInt64LE()}readBigUInt64LE(){return this.read(8).readBigUInt64LE()}readDoubleLE(){return this.read(8).readDoubleLE()}readPackedUInt_8_32(){let e=this.readUInt8();return e===255&&(e=this.readUInt32LE()),e}readPackedUInt_16_32(){let e=this.readUInt16LE();return e===65535&&(e=this.readUInt32LE()),e}readString(e){return e===0?"":this.read(e).toString("utf8")}};var dn=se(Jd()),Oe=se(require("os")),Z=se(require("path"));var Zd=require("child_process");function Ii(a,e){return a.match(/^~[\\\/]/)&&(a=Z.posix.join(Oe.homedir().replace(/\\/g,"/"),a.replace(/^~[\\\/]/,""))),a=a.replace("${userHome}",Oe.homedir()),e?.[0]&&(a=a.replace("${workspaceFolder}",e[0].uri.fsPath)),a=a.replace(/\$\{env:(\w+)}/g,(t,n)=>process.env[n]??t),a}var us=class{constructor(e,t,n,i){this.fs=e;this.fv=t;this.docs=n;this.workspaceFolders=i}async getBinaryVersion(){return new Promise((e,t)=>{(0,Zd.execFile)(this.factorioPath,["--version"],{env:Object.assign({},process.env,{SteamAppId:"427520"})},(n,i,s)=>{n&&t(n);let u=i?.match(/^Version: ([0-9\.]+) /);u&&e(u[1]),t(new Error("Unable to read version"))})})}async debugLaunchArgs(){let e=[];return e.push(this.factorioPath),this.fv.docsPath&&e.push("--docs",this.fv.docsPath),this.configPathIsOverriden()&&e.push("--config",await this.configPath()),this.workspaceFolders&&e.push("--workspace",...this.workspaceFolders.map(t=>t.uri.fsPath)),e}get name(){return this.fv.name}get factorioPath(){return Ii(this.fv.factorioPath,this.workspaceFolders)}get docsPath(){return Z.join(this.factorioPath,this.fv.docsPath?this.fv.docsPath:Oe.platform()==="darwin"?"../../doc-html/runtime-api.json":"../../../doc-html/runtime-api.json")}get protosPath(){return Z.join(this.factorioPath,this.fv.protosPath?this.fv.protosPath:this.fv.docsPath?Z.join(this.fv.docsPath,"../prototype-api.json"):Oe.platform()==="darwin"?"../../doc-html/prototype-api.json":"../../../doc-html/prototype-api.json")}configPathIsOverriden(){return!!this.fv.configPath}async configPath(){if(this.fv.configPath)return Ii(this.fv.configPath,this.workspaceFolders);let e=Z.resolve(Z.dirname(this.factorioPath),"../../config-path.cfg");try{let t=dn.parse((await this.fs.readFile(xe.file(e))).toString());return Z.resolve(this.translatePath(t["config-path"]),"./config.ini")}catch{}return this.translatePath("__PATH__system-write-data__/config/config.ini")}get nativeDebugger(){return this.fv.nativeDebugger&&Ii(this.fv.nativeDebugger,this.workspaceFolders)}get nativeDAP(){return this.fv.nativeDAP}iniData;async configIni(){return this.iniData||(this.iniData=this.fs.readFile(xe.file(await this.configPath())).then(e=>dn.parse(e.toString()))),this.iniData}async isPrototypeCacheEnabled(){try{return(await this.configIni()).other?.["cache-prototype-data"]}catch{return}}async disablePrototypeCache(){this.iniData=void 0;let e=xe.file(await this.configPath()),t=(await this.fs.readFile(e)).toString();t=t.replace("cache-prototype-data=","; cache-prototype-data="),await this.fs.writeFile(e,Buffer.from(t)),this.iniData=dn.parse(t)}async isMouseAutoCaptureDisabled(){try{return(await this.configIni()).other?.["disable-mouse-auto-capture"]}catch{return}}async disableMouseAutoCapture(){this.iniData=void 0;let e=xe.file(await this.configPath()),t=(await this.fs.readFile(e)).toString(),n=t.match(/^;? *disable-mouse-auto-capture=.*$/m);if(n)t=t.slice(0,n.index)+`
3016
3091
  disable-mouse-auto-capture=true
3017
3092
  `+t.slice(n.index+n[0].length);else{let i=t.match(/^\[other\]$/m);t=t.slice(0,i.index+i[0].length)+`
3018
3093
  disable-mouse-auto-capture=true